我有来自 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/