【问题标题】:How to parse GMT timestamp string in form of 1.337363185441E9 to Joda DateTime?如何将 1.337363185441E9 形式的 GMT 时间戳字符串解析为 Joda DateTime?
【发布时间】:2012-06-01 16:23:53
【问题描述】:

我正在使用返回 GMT 时间戳的 API,例如 1.337363185441E9。如何将其格式化为 Joda DateTime 对象?我不知道这甚至是一种有效的时间戳格式。也许这就是问题的一部分……?

【问题讨论】:

  • 你知道这个数字代表什么吗(比如从 xx/xx/xxxx 开始的毫秒数)?或者你知道你给出的具体数字应该代表什么日期吗? 2012-05-18T18:46:25.441+01:00 有意义吗?
  • 是的,这看起来像是自纪元以来的毫秒数(与 System.currentTimeInMillis() 相同),除了添加了纳秒的分数。
  • @Torious 实际上它看起来像自纪元以来的秒数,分数是毫秒。
  • 哦,你是对的。我的错误:)

标签: java jodatime


【解决方案1】:

这看起来是自纪元以来的几秒钟。在我的脑海中,这将是:

long l = Double.valueOf("1.337363185441E9").longValue();
l = l * 1000;
DateTime d = DateTime(l);

【讨论】:

  • 现在要弄清楚为什么 new Period(d, DateTime.now()).getDays() 在日期时间为 2012 年 5 月 18 日星期五 17:46:25 GMT-0400 时给我六个
  • 显然我需要Period p = new Period(dateTime, DateTime.now()).toStandardDays().toPeriod();
猜你喜欢
  • 2015-04-02
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2013-11-21
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多