如何在Java中将日期转换为毫秒


long beginupd = new GregorianCalendar(2014,3,14,10,55,25).getTime().getTime();              
Date date = new Date();
long milli=date.getTime();           
System.out.println(beginupd);
System.out.println(milli);
System.out.println(date);
输出:

1397462125000

1394787327009

星期五Mar 14 10:55:27 EET 2014

我错在哪里?为什么不相等呢?差值只有两秒,但输出差值非常大

OK !1月为0,12月为11。谢谢你David Wallace

如果不是Date,则将其解析为Date。日期格式是任意的,只要你能构造一个合适的SimpleDateFormat来表示它。

有了Date之后,可以使用Date.getTime()来检索毫秒值。

对于您所展示的示例,如果您有一个字符串:

String datestr = "2014-14-03 01:39:00";

那么匹配的SimpleDateFormat将是:

DateFormat format = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss");

转换为:

long millis = format.parse(datestr).getTime();

使用Date是没有问题的,因为构造函数和getTime()仍然是少数未弃用的组件。


编辑:我看到你已经编辑了你的问题,包括Date的使用。您正在使用的构造函数已弃用,而且也不是很灵活。输入(您必须已经解析了日期组件才能使用它)。SimpleDateFormat提供了一种不被弃用的方式将任意字符串转换为日期。

这不起作用的原因是您正在使用的已弃用的Date构造函数期望year - 1900作为第一个参数。

您应该使用SimpleDateFormatGregorianCalendar来完成此转换。因为这里已经有一个很好的答案,显示SimpleDateFormat的使用,这里是如何使用GregorianCalendar在2014年3月14日1:39am。

new GregorianCalendar(2014, 2, 14, 1, 39, 0).getTime().getTime();

注意一月用0,十二月用11。

可以在这里找到一篇关于Date api的好文章。http://www.mkyong.com/java/java-time-elapsed-in-days-hours-minutes-seconds/

为了转换为毫秒,只需做一些基本的数学运算。

相关内容

  • 没有找到相关文章

最新更新