Java 如何创建 UTC 并向同一个 UTC 对象添加几毫秒

标签 java utc

static String createUTCTime()
{
    Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
    cal.add(Calendar.SECOND, 10);

    SimpleDateFormat f = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
    f.setCalendar(cal);

    return f.format(new Date());
}

基本上是我想做的事情

Calendar objectX = createUTCTime();
//2012-Nov-27 18:35:40

x.addMS(10);
//2012-Nov-27 18:35:50

如何处理 UTC 时间来操纵它们?

最佳答案

Date 只是一个时间点,它不包含任何时区信息。如果您想使用时区和日期,则需要日历:

Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
cal.add(Calendar.SECONDS, 10);

现在棘手的部分是,您不能仅仅将其转换为Date (cal.getTime()),因为它会丢失时区(但仍代表同一时间点)。您应该做的是创建一个配置为使用 UTC 的 SimpleDateFormat`。

另一方面,如果您只需要秒或毫秒,Date 就可以了。只需记住在正确的时区格式化即可。但是您不应该使用 Date 表示小时以及上述所有内容(假设小时为 3600000 毫秒,由于闰秒、DST 等原因,有时是错误的)

关于Java 如何创建 UTC 并向同一个 UTC 对象添加几毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13590957/

相关文章:

java 程序,从用户获取一个值并将其转换为其八进制等价物

java - Android 动态添加 subview - 充气机?需要一般建议

java - MySQL - "SHOW VARIABLES LIKE ' %version %'"在我的 Java 应用程序中不工作

sql - 如何在 iSeries 上的 SQL400 中获取 UTC 时间戳?

php - 在 $model->find Yii 中使用 UTC_TIMESTAMP()

javascript - 这个JS时间码可以用吗?我可以让它变得更好吗?

java - YAML 值未正确返回

启动器 VM 参数中的 Java user.home

jquery - JSON 时间服务 "json-time.appspot.com"已损坏。有人有替代品吗?

java - "DateUTC"最准确的 joda-time 表示是什么?