如何以秒为单位获取当前UTC时间

swa*_*ati 12 java time seconds

我有一个应用程序,需要以秒为单位比较时间.

我想知道如何以秒为单位获取当前的UTC时间.

有人可以发布一个例子,我们如何在Java中做到这一点?

Jus*_*ing 16

你可以使用它来获得你想要时间的时区传递时区

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
Run Code Online (Sandbox Code Playgroud)

然后你可以在日历对象上调用你想要的任何东西

System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.HOUR));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
Run Code Online (Sandbox Code Playgroud)

下面的示例以秒为单位比较两个日历

Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

// Set the dates for calendars
cal1.set(2011, 1, 1);
cal2.set(2011, 2, 2);

// Get the represented date in milliseconds as a long
long milis1 = cal1.getTimeInMillis();
long milis2 = cal2.getTimeInMillis();

// Calculate difference in milliseconds
long diff = milis2 - milis1;

// Calculate difference in seconds
long diffSecs = diff / 1000;

System.out.println("In seconds: " + diffSecs + " seconds");
Run Code Online (Sandbox Code Playgroud)


Jef*_*rey 11

System.currentTimeMillis的()

  • currentTimeMillis不是UTC,它是系统本地时间(可能是也可能不是UTC). (5认同)
  • @Dunes:不,"currentTimeMillis"是UTC.参见Javadocs:_Returns:当前时间与1970年1月1日午夜之间的差异,以毫秒为单位.http://docs.oracle.com/javase/6/docs/api/java/lang/System html的#的currentTimeMillis%28%29 (4认同)
  • @Randgalt:这是因为`Date.toString()`(您隐式调用)正在作弊-它在您当地的时区中打印日期(我也曾提到过)。存储在`Date`实例中的时间戳记是UTC。如果您还有其他问题,请随时提出另一个问题:-)。 (2认同)