【问题标题】:Get GMT Time in Milliseconds using JAVA [duplicate]使用JAVA获取以毫秒为单位的GMT时间[重复]
【发布时间】:2012-10-23 09:34:48
【问题描述】:

可能重复:
Get GMT Time in Java

我参考了以下 2 个链接:

link1 link2

但我想要以毫秒为单位的 GMT 日期。

提前致谢。

【问题讨论】:

  • @Mark 我认为您没有正确阅读问题。我已经参考了您提供的链接,因为我正在获取日期,但我想要以毫秒为单位的日期,我卡住了。你有什么想法吗????
  • 我不知道为什么人们在没有给出任何正当理由的情况下否决了这个问题。
  • 它确实以毫秒为单位

标签: java uti


【解决方案1】:

您可以使用 System.currentTimeMillis() 它返回“当前时间与 UTC 1970 年 1 月 1 日午夜之间的差异,以毫秒为单位。”

long time = System.currentTimeMillis();

会做的:)

【讨论】:

  • 那不是使用系统时间而不仅仅是使用 GMT 吗?如果是这样,如果您需要在多个时区对毫秒进行标准化,这不会造成问题吗?
  • 这会返回与接受的答案完全相同的结果,但要简洁得多。
【解决方案2】:

使用Calendar#getTimeInMillis:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
long time = cal.getTimeInMillis();

【讨论】:

  • 这是我见过的获取 GMT 时间的最复杂、最低效的方法。 :D 在这一切下,它必须调用System.currentTimeMillis(),它返回格林威治标准时间的毫秒数。
  • @PeterLawrey:你为什么认为 OP 总是想要 current 时间?
  • 没错,但如果您需要以毫秒为单位存储 GMT 时间,您也可以使用 long
  • 它还能正确处理夏令时吗?
【解决方案3】:

使用getTime()函数:

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数 由此 Date 对象表示。

【讨论】:

    【解决方案4】:

    使用日历类创建一个以 GMT 作为时区的实例。

    从中您可以得到以毫秒为单位的时间。

    请参阅下面的代码示例。

    public class TimeTest {
    
        public static void main(String [] args) {
            Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
            System.out.println(cal.currentTimeMillis());
    
        }
    }
    

    希望这会有所帮助。

    【讨论】:

    • 对于以毫秒为单位的当前时间,总是更喜欢System.currentTimeMillis(),如果你使用Calendar,更喜欢cal.getTimeInMillis()而不是cal.getTime().getTime()
    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2011-04-30
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多