java - 如何在Java中解析格式为 "\/Date(1339638938087-0500)\/"的日期字符串?

标签 java json datetime

我有来自 Web 服务 API 的格式为 "\/Date(1339638938087-0500)\/" 的字符串。

使用java,如何将其放入org.joda.time.DateTime变量中?

最佳答案

您需要提取这两条信息:

  • -2208967200000:自 Unix 纪元(UTC 时间 1970 年 1 月 1 日)以来的毫秒数
  • -0600:相对于 UTC 的偏移

假设该示例代表本地时间 1900 年 1 月 1 日午夜 - 因为 -2208967200000 部分代表世界标准时间 (UTC) 上午 6 点。

要将其转换为 Joda Time DateTime,您应该提取两个部分(去掉括号外的所有内容,然后使用长度来分割它,或者找到中间的 +/- 符号)。

接下来,将第一部分解析为 millis 部分的 long。 然后,解析第二部分 - 可能为小时、分钟并分别签名。 (我假设它始终采用 xHHmm 的形式,其中 x 是符号,HH 是两位数的分钟,mm 是两位数的小时。)

使用 DateTimeZone.forHoursMinutesOffset 创建偏移量的固定时区或类似的东西。

最后,创建时间

new DateTime(millis, zone);

哦,然后踢掉那些制作如此可怕格式的人......

关于java - 如何在Java中解析格式为 "\/Date(1339638938087-0500)\/"的日期字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368285/

相关文章:

java - 如何在 Hibernate @Formula 中使用实体字段

java - 在 Java 中将 BigDecimal 字段作为 JSON 字符串值返回

c# - 替换时区

python - 检查 python 变量是否是日期?

java - Gradle 项目同步失败 - Android Studio Gradle Build 2.20

java - 如何使用 com.datastax.driver.core.PreparedStatement 中的值获取查询?

Java system.out 不打印所有出现的情况

javascript - 错误 : [$controller:ctrlreg]

java - 如何在JAVA中读取python字典字符串

java - 如何获取 Android 中当前的系统日期?