如何像这样解析日期时间

时间:2018-11-14 15:51:44

标签: java datetime

我知道这听起来很奇怪,但是我有datettime 2018-04-04 12:59:575Z。 让我们假设它是真实的,不是错误,并且我找不到解析此标准的任何标准。 有没有办法用Java解析它?最后的三个数字575意味着什么?

编辑: 强烈怀疑我的样本中的日期时间正确无误。我要向创建者报告错误。谢谢大家的好建议。

4 个答案:

答案 0 :(得分:3)

这可能意味着此字符串的来源均存在错误。如果可以访问该代码或向其所有者报告错误,我将在那里进行调查。

解析错误的数据并猜测数字的含义是没有意义的。坏数据比没有数据更糟糕。

答案 1 :(得分:3)

  

最后3个数字575意味着什么?

我的猜测包括:

  • 现在是12:59:57.5(.5表示半秒;假定格式中省略了小数点)。
  • 575是秒的毫秒数,而秒已被忘记。所以在12:59:ss.575,我们不知道ss应该是什么。
  • 现在是12点59,575分钟(与12:59:34.5相同)。为了捍卫此选项,ISO 8601确实允许分钟为小数点,但小数点应为逗号或句点,而不是冒号。
  

我找不到任何解析标准。

我非常相信没有任何东西。

  

有没有办法用Java解析它?

不,抱歉,只要我们不知道字符串的含义。

答案 2 :(得分:0)

最后# Read yaml file into nested dictionary import yaml fileName = '/tmp/testbed1.yaml' with open(fileName, 'r') as yamlFile: data = yaml.load(yamlFile) # Get target value target = data.get('devices').get('NN41_R11') # Pretty print nested dictionary (or simply print) __import__('pprint').pprint(target) 可能有两个选项。可能是分钟。我认为,分钟更有可能,因为秒可能没有价值。 59肯定是毫秒

575

PS 。它可能是DateTimeFormatter dfMinutes = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:SSS"); DateTimeFormatter dfSeconds = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:ss:SSS"); 而不是yyyy-dd-MM。但是正如我所看到的,我们在相同的语言环境中。

答案 3 :(得分:0)

您可以使用joda time api来解析输入的String,如下所示:-

String strDate="2018-04-04 12:59:575Z";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:SSSZ");
DateTime dt = formatter.parseDateTime(strDate);
System.out.println(dt); //2018-04-04T08:59:00.575-04:00
输入字符串中的

575是毫秒。

  

但是您需要找出精确的意义,直到   如果不包括秒,则为毫秒。