gpt4 book ai didi

java - 乔达时期不是打印日

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:52 26 4
gpt4 key购买 nike

我在解析时间瞬间时在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com