【问题标题】:how to convert date to millisecond at Java? [closed]如何在 Java 中将日期转换为毫秒? [关闭]
【发布时间】:2014-03-13 23:40:32
【问题描述】:
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

2014 年 3 月 14 日星期五 10:55:27 EET

我怎么了?为什么不相等?相差只有两秒,但输出差异很大

好的! 0 表示 1 月,11 表示 12 月。谢谢大卫华莱士

【问题讨论】:

  • 输入的格式是什么?是String吗?是Date值吗?
  • 是的!如果您有 String 值,则需要将其解析回 Date 以便获得毫秒数。如果您已经有 Date 值,那么您不需要进行解析...我还假设您正在尝试获取这两个值之间的持续时间...可以看到 here 和 @ 987654322@
  • @user2772836 将其解析为Date,然后使用Date.getTime()。日期格式是任意的,只要你可以构造一个合适的SimpleDateFormat来表示它。
  • 使用 SimpleDateFormat 将其解析为日期并调用 getTime() 方法。这应该可以做到。

标签: java datetime


【解决方案1】:

如果它还不是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 提供了一种未弃用的方式来将任意字符串转换为日期。

【讨论】:

    【解决方案2】:

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

    您应该改用SimpleDateFormatGregorianCalendar 来执行此转换。由于这里已经有一个很好的答案,显示了SimpleDateFormat 的使用,这里是你在 2014 年 3 月 14 日凌晨 1:39 使用GregorianCalendar 的方法。

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

    注意月份使用 0 表示 1 月,11 表示 12 月。

    【讨论】:

    • 1397430420000 1394755672098 是的,这只是 1 秒的差异,但这个差异非常大
    • 对不起,我不明白你在说什么。这两个数字是多少?
    • 在我看来,这种差异大约是 31 天。您是否像我建议的那样在 3 月输入 2 而不是 3? (已弃用的 Date 构造函数也需要 2 来表示 March)。
    【解决方案3】:

    这里有一篇关于日期 API 的好文章。 http://www.mkyong.com/java/java-time-elapsed-in-days-hours-minutes-seconds/

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

    【讨论】:

    • 将日期转换为毫秒的数学运算远非基本(考虑闰时间等——如果不是 UTC,也可以考虑时区转换)。无需手动计算,因为所有可用的日期 API 都已提供转换为毫秒纪元时间的工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多