无法解析推特 API 提供的时区字符串



Twitter的用户时间线API以两种不同的方式在其响应有效负载中为我提供时区信息 - utc_offset(整数(和time_zone(字符串(

例如"utc_offset":-18000,"time_zone": "东部时间(美国和加拿大(",

我打算通过我的 Spring 应用程序将时区字符串字段存储在 PostgreSQL 中,并希望以后能够使用相同的时间戳得出正确的时间戳。

这意味着我应该能够解析time_zone字段以获取时区信息,但其格式不符合java.util.TimeZone期望。我试过了,因为它无法解析上述格式,所以它回退到 UTC。

有没有一个Java库可以理解Twitter给出的格式?很难想象Twitter会在其提要中使用非标准的时区格式。

注意:- 我正在寻找纯粹的基于Java的解决方案,而不是Rails

    DateTimeFormatter parser = DateTimeFormatter.ofPattern("zzzz");
    String timeZoneFromTwitter = "Eastern Time (US & Canada)";
    ParsePosition position = new ParsePosition(0);
    ZoneId zid = ZoneId.from(parser.parse(timeZoneFromTwitter, position));
    System.out.println(zid);

这打印(至少在我的电脑上(

America/New_York

老实说,我不知道它会对你有多大帮助,我承认它处于作弊的边缘。真正发生的是格式化程序仅解析"东部时间"并停止。这足以使它可以将时区识别为美国/New_York。ParsePosition用于指定我们不需要它来解析所有字符串。

你提到了java.util.TimeZone.我鼓励你放弃那个课程和它的朋友,他们早就过时了。 java.time,现代Java日期和时间API也称为JSR-310通常更好用,所以你为什么不养成这个习惯呢?

相关内容

  • 没有找到相关文章

最新更新