java时间(Wed Feb 29 20:56:47 +0000 2012)到epoch

时间:2012-03-03 17:14:30

标签: java time epoch

我有一个数据库,其中包含以下格式的时间戳:

Wed Feb 29 20:56:47 +0000 2012
Wed Feb 29 00:32:48 +0000 2012
Fri Apr 01 00:10:30 +0000 2011

我需要将时间转换为大纪元来轻松进行计算。

我希望它们自1970年以来就是秒(就像System.currentTimeMillis()/1000所做的那样)

java是否有一些方法或者我必须解析并计算它?提前谢谢。

1 个答案:

答案 0 :(得分:3)

嗯,你必须解析它,但这对SimpleDateFormat来说很容易:

SimpleDateFormat format = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy",
                                               Locale.US);

Date date = format.parse(text);
long secondsSinceEpoch = date.getTime() / 1000;

另一方面,如果您将数据库中的值以更合适的列类型存储起来,那将会更好。你真的将它们存储为文本吗?如果是这样,为什么?