我的应用程序正在使用jodatime管理日期解析和格式化。
我有这个时间戳:2018-07-24T15:30:00-07:00
。如何显示为3:30 pm,无论用户的下落如何?
以下代码将打印" 3:30 pm":
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()
。