【问题标题】:JSON.stringify datetime issue [duplicate]JSON.stringify 日期时间问题 [重复]
【发布时间】:2017-07-12 13:26:07
【问题描述】:

当我将一个数组转换为 json 时,我的日期时间更改如下 从 2017-07-12 11:58:07 到 2017-07-12T08:58:07.000Z

如何将此字符串解析为真实的日期时间?

我想做这样的

String Time="2017-07-12T08:58:07.000Z";
Datetime RealTime=getRealDateTime(Time);

实时结果需要是 2017-07-12 11:58:07

【问题讨论】:

  • 你在使用 JodaTime 吗?
  • 不,我没有使用
  • Datetime是什么对象,从哪里来的?
  • NodeJS 到 android(JAVA)
  • 您的输入字符串采用标准 ISO 8601 格式。在发布之前始终搜索 Stack Overflow。

标签: java json date datetime toisostring


【解决方案1】:

“2017-07-12T08:58:07.000Z” - 采用 ISO-8601 格式,表示与 2017-07-12 11:58 完全相同的 UTC 日期时间('Z' 结尾表示 UTC): 07 在您的时区。我猜你在 +03:00 区域的计算机上运行你的程序。

所以,做你需要的一种方法是使用 XML javax.xml.bind.DatatypeConverter

DatatypeConverter.parseDateTime("2017-07-12T08:58:07.000Z")

它返回 Calendar 所以如果你需要 java.util.DategetTime() 方法获取它

DatatypeConverter.parseDateTime("2017-07-12T08:58:07.000Z").getTime()

从中您可以通过java.text.SimpleDateFormat 或任何其他格式以您想要的格式打印您的日期...

【讨论】:

  • 那些麻烦的类现在是遗留的,被 java.time 类所取代。
  • @Basil_Bourque 哪个javax.xml.bind.DatatypeConverter?正如我所说,这是一种方法(如果您了解 Date 类和 TimeZone 是什么,并且可以正常工作,没有问题)所以......在投票之前展示如何按照自己的方式进行。
  • 在 2017 年,没有充分的理由来宣传 Date/Calendar 旧的日期时间类,没有好处,没有好处。我们有一个替代品,一个 优秀 行业领先的 java.time 类替代品。并且替换是内置 Java。那么为什么哦为什么继续使用旧的cruft?
  • 我不宣传任何东西。在 2017 年,现实世界中需要通用解决方案的案例已经足够多。
猜你喜欢
  • 2012-07-30
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
相关资源
最近更新 更多