java - 乔达时期不是打印日

标签 java datetime jodatime

我在解析时间瞬间时在 JodaTime 中发现了某种不当行为。

 DateTimeFormatter dateStringFormat =
                DateTimeFormat.forPattern("EEE MMM dd kk:mm:ss 'GMT'Z yyyy");
        DateTime startTime = dateStringFormat.withOffsetParsed().
                parseDateTime("Tue Jan 01 09:30:00 GMT+2000 2013");
        DateTime endTime = dateStringFormat.withOffsetParsed().
                parseDateTime("Tue Jan 05 10:31:00 GMT+2000 2013");


        Period period = new Period(startTime, endTime);

        PeriodFormatter formatter = new PeriodFormatterBuilder().appendDays()
                .appendSuffix(" day ", " days")
                .appendHours()
                .appendSuffix(" hour ", " hours")
                .appendMinutes()
                .appendSuffix(" minute", " minutes")
                .toFormatter();


        System.out.println(formatter.print(period));

输出是:“1小时1分钟”
“天”部分在哪里?


此代码的 Basil Bourque 版本……

在第二个 DateTime 中,日期莫名其妙地被解析为 01 而不是 05。

DateTimeFormatter dateStringFormat = DateTimeFormat.forPattern("EEE MMM dd kk:mm:ss 'GMT'Z yyyy");
DateTime startTime = dateStringFormat.withOffsetParsed().parseDateTime("Tue Jan 01 09:30:00 GMT+2000 2013");
DateTime endTime = dateStringFormat.withOffsetParsed().parseDateTime("Tue Jan 05 10:31:00 GMT+2000 2013");

转储到控制台...

System.out.println( "startTime: " + startTime );
System.out.println( "endTime: " + endTime );

运行时...

startTime: 2013-01-01T09:30:00.000+20:00
endTime: 2013-01-01T10:31:00.000+20:00

最佳答案

两个日期都是星期二。如果您更正此并将 2013 年 1 月 5 日设置为星期六(原样),那么它会起作用:

DateTime startTime = dateStringFormat.withOffsetParsed().parseDateTime("Tue Jan 01 09:30:00 GMT+2000 2013");
DateTime endTime = dateStringFormat.withOffsetParsed().parseDateTime("Sat Jan 05 10:31:00 GMT+2000 2013");

似乎无法使用 Joda Time 检查日期是否有效:

关于java - 乔达时期不是打印日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21087575/

相关文章:

java.sql.Date 和 java.sql.Time 到 org.joda.time.DateTime

java - JMS 中的动态消息选择器

Java Swing dispose() 与 setVisible(false)

java - 如何在VSCode中解析 'import javafx cannot be resolved'?

java - 使用java aws sdk将文件从一个存储桶复制到另一存储桶

Python从日期时间结果中获取总秒数偶尔会出现错误

python - 日期时间范围中前一天/前一个月/前一年的第一个可用日期

java - 如何修改 `@SQLUpdate` 以将 `Joda` `DateTime` 对象转换为 `h2` 可读时间戳?

java - 使用 joda-time 输出可读的日期

java - 如何以 UTC 显示所选时区的 Toast