【问题标题】:Java: Convert long time of day to timestampJava:将一天中的长时间转换为时间戳
【发布时间】:2013-01-05 12:14:35
【问题描述】:

我有一个长值,表示自当天午夜以来的时间(以毫秒为单位)。即 00:00:01 将是 1000。

我想将其转换为自纪元以来的长时间戳 - 使用当前系统的日、月、年。最好的方法是什么?

【问题讨论】:

  • 哪一天?您对哪种数据类型感兴趣?真的不清楚你在问什么。另外,请记住时区 - 您是否有 UTC 日或某个特定时区的“一天中的时间”?
  • 当前系统日期,抱歉应该指定

标签: java time timestamp long-integer milliseconds


【解决方案1】:
    final Calendar instance = Calendar.getInstance();
    instance.set(Calendar.HOUR, 0);
    instance.set(Calendar.MINUTE, 0);
    instance.set(Calendar.SECOND, 0);
    instance.set(Calendar.MILLISECOND, 0);
    long result = instance.getTimeInMillis() + yourTime;

另请注意,Calendar#getInstance 执行以下操作:

Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());

结果时间将根据默认设置的 TimeZone 更改(是的,它可以更改!)。看到这个帖子:java Timezone setDefault effects

【讨论】:

    【解决方案2】:

    试试这个:

    Date date = new Date(your_long_value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      相关资源
      最近更新 更多