0

我在下面有这段代码,我没有得到正确的日期例如一个日期是 01/01/2013 12:35 但 format.parse 只返回 dd/mm/yyyy 并且不包括 hh:mm

这是一个示例日期时间 03/09/2012 15:26,输出产生 1346649960000

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy hh:mm");
long data = format.parse(childNode.getTextContent()).getTime();

关于为什么这会奇怪地格式化时间的任何线索?

4

2 回答 2

1

我认为它给出了有效的输出。getTime() 返回自 1970 年 1 月 1 日 00:00:00 以来的毫秒数。所以最后 3 个零是毫秒

于 2012-09-05T04:48:37.677 回答
1

我在您的代码中看到 2 个问题:

  1. 如果解析 24 小时格式的时间,则必须使用 HH 而不是 hh。
  2. 您可能需要指定用于解析的时区,您所在时区的 15:26 发生在另一个时区的不同时间。

请在下面查看我建议的修复:

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
于 2012-09-05T04:49:04.260 回答