gpt4 book ai didi

java - 使用 joda 时间将一个时区转换为另一时区

转载 作者:行者123 更新时间:2023-11-30 04:03:48 24 4
gpt4 key购买 nike

我已经创建了一个函数,可以使用 joda 时间从一个时区转换为另一个时区,但该函数不接受日期
我已将以下参数传递给此函数 "Asia/Kolkata""UTC""12-Dec-2014 12:30" 。它抛出以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "12-Dec-2014 12:32" is malformed at "-Dec-2014 12:32"
at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:752)
at org.joda.time.convert.StringConverter.getInstantMillis(StringConverter.java:65)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:150)
at org.joda.time.DateTime.<init>(DateTime.java:265)
at Dtime.convertTimeZones(Dtime.java:17)
at Dtime.main(Dtime.java:9)

这是代码:

public static String convertTimeZones( String fromTimeZoneString, 
String toTimeZoneString, String fromDateTime) {
DateTimeZone fromTimeZone = DateTimeZone.forID(fromTimeZoneString);
DateTimeZone toTimeZone = DateTimeZone.forID(toTimeZoneString);
DateTime dateTime = new DateTime(fromDateTime, fromTimeZone);

DateTimeFormatter outputFormatter =
DateTimeFormat.forPattern("dd-MMM-yyyy HH:mm").withZone(toTimeZone);
return outputFormatter.print(dateTime);
}

DST(夏令时)
我将参数传递为 ("America/Denver","GMT","09-Mar-2014 02:00") 夏令时将于该日期开始
丹佛
2014 年 3 月 9 日星期日 02:00:00 时钟向前拨 1 小时至
2014 年 3 月 9 日星期日 03:00:00 改为本地时间
但它抛出异常
异常

Exception in thread "main" java.lang.IllegalArgumentException: Cannot parse "09-Mar-2014 02:00": Illegal instant due to time zone offset transition (America/Denver)
at org.joda.time.format.DateTimeParserBucket.computeMillis(DateTimeParserBucket.java:390)
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:849)
at timeZone.convertTimeZones(timeZone.java:23)
at timeZone.main(timeZone.java:14)

最佳答案

您需要使用 inputFormatter 解析您的日期(如您已经定义的 outputFormatter)。像这样的事情

DateTimeFormatter inputFormatter = DateTimeFormat.forPattern(
"dd-MMM-yyyy HH:mm").withZone(fromTimeZone);
DateTime dateTime = inputFormatter.parseDateTime(fromDateTime);

我测试过,它输出

12-Dec-2014 07:00

关于java - 使用 joda 时间将一个时区转换为另一时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266744/

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