JodaTime - 在自己的时区显示时间
JodaTime - Display time in its own timezone
我的应用程序使用 JodaTime 来管理日期解析和格式设置。
我有这个时间戳:2018-07-24T15:30:00-07:00
。
怎么能显示成3:30pm,不管用户在哪里?
以下代码将打印“3:30pm”:
DateTimeFormatter iso = ISODateTimeFormat.dateTimeParser().withOffsetParsed();
DateTime tsp = iso.parseDateTime("2018-07-24T15:30:00-07:00");
DateTimeFormatter out = DateTimeFormat.forPattern("h:mma").withLocale(Locale.ENGLISH);
System.out.println(tsp); // 2018-07-24T15:30:00.000-07:00
System.out.println(out.print(tsp).toLowerCase()); // 3:30pm
主要问题只是解析器不保留解析后的 -7:00 偏移量,而是将其转移到您的系统时区,除非您也调用 withOffsetParsed()
.
我的应用程序使用 JodaTime 来管理日期解析和格式设置。
我有这个时间戳:2018-07-24T15:30:00-07:00
。
怎么能显示成3:30pm,不管用户在哪里?
以下代码将打印“3:30pm”:
DateTimeFormatter iso = ISODateTimeFormat.dateTimeParser().withOffsetParsed();
DateTime tsp = iso.parseDateTime("2018-07-24T15:30:00-07:00");
DateTimeFormatter out = DateTimeFormat.forPattern("h:mma").withLocale(Locale.ENGLISH);
System.out.println(tsp); // 2018-07-24T15:30:00.000-07:00
System.out.println(out.print(tsp).toLowerCase()); // 3:30pm
主要问题只是解析器不保留解析后的 -7:00 偏移量,而是将其转移到您的系统时区,除非您也调用 withOffsetParsed()
.