如何将日期/时间字符串转换为自 Unix 纪元以来的分钟数?

9
我需要将文本文件中的日期/时间转换为自Unix纪元(即1970年1月1日)以来经过的分钟数:
e.g. 2006-01-01 07:14:38.000 into 18934874

我正在使用Java解析文件。

谢谢。

"分钟",你确定吗?3 249 834 224 378分钟= 6 178 993.91年。你可能想说的是毫秒,尽管即使在这种情况下,你问题中的示例也不是完全正确的。 - Jonik
一个自2006年1月1日以来的时间戳,以毫秒为单位,大约是1136092440000。以分钟计算约为18934874。 - Jonik
@Jonik 没错,抱歉数字是错误的。 - aneuryzm
1个回答

28

您可以使用类SimpleDateFormat解析时间。例如:

SimpleDateFormat sdf  = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS");
Date date = sdf.parse("2006-01-01 07:14:38.000");
long timeInMillisSinceEpoch = date.getTime(); 
long timeInMinutesSinceEpoch = TimeUnit.MILLISECONDS.toMinutes(timeInMillisSinceEpoch);

免责声明

  1. 几分钟前我意识到我使用了错误的毫秒模式(使用了's'而不是'S')。对于这个错误我表示抱歉。
  2. 添加来自@superfav的建议。

9
自Java 5以来,您可以使用TimeUnit.MILLISECONDS.toMinutes(timeInMillisSinceEpoch); 来避免使用“魔法数字”。 - superfav
1
我们需要在这里除以60来转换为分钟吗?似乎另一个答案是TimeUnit.MILLISECONDS.toMinutes(timeInMillisSinceEpoch)。你能更新一下你的答案吗? - Neeraj
谢谢@Neeraj,看起来我编辑失败了。 - Augusto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接