【问题标题】:JodaTime - Display time in its own timezoneJoda Time - 在自己的时区显示时间
【发布时间】:2018-05-18 03:45:48
【问题描述】:

我的应用正在使用 JodaTime 来管理日期解析和格式化。

我有这个时间戳:2018-07-24T15:30:00-07:00。 无论用户在哪里,如何显示为下午 3:30?

【问题讨论】:

    标签: java android datetime timezone jodatime


    【解决方案1】:

    以下代码将打印“下午 3:30”:

    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()

    【讨论】:

    • 谢谢,这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2013-01-26
    • 2015-03-14
    相关资源
    最近更新 更多