Java - 日期作为长值:时区如何关联



有人可以详细解释以下内容:

我有一个代表datelong值。

  1. long值关联的timezone是什么?

  2. 如何将long值转换为具有正确time zone的日期?

  3. 有没有办法识别与long date值关联的timezone

长是自 1970 年 1 月以来的毫秒,格林威治标准时间。 所以,在这方面,它是格林威治标准时间。

表示java.util.Datelong值是从纪元开始经过的毫秒数。(1970年1月1日)

/**
 * Allocates a <code>Date</code> object and initializes it to 
 * represent the specified number of milliseconds since the 
 * standard base time known as "the epoch", namely January 1, 
 * 1970, 00:00:00 GMT. 
 *
 * @param   date   the milliseconds since January 1, 1970, 00:00:00 GMT.
 * @see     java.lang.System#currentTimeMillis()
 */
public Date(long date) {
    fastTime = date;
}
  • 与多头值关联的时区是什么?
    你能将一个单位附加到长值吗?不。
    这类似于说给定一个 int 2 它代表什么?.它可能是 2 英里或 2 磅。

  • 如何将长值转换为具有适当时区的日期?
    你不能因为上述原因。

  • 有没有办法识别与长日期值关联的时区?
    不。

日期(作为长整型或 java.util.Date)表示一个时刻。

除非您正在处理日历,否则不涉及时区。

您可以像这样为给定时区和区域设置创建日历:

long rightNow = System.currentTimeMillis();
Locale exampleLocale = Locale.GERMANY;
TimeZone zone = TimeZone.getTimeZone("EST");
Calendar theCalendar = Calendar.getInstance(zone, exampleLocale);
theCaledar.setTime(new Date(rightNow));

当时间是长格式时,TimeZone不会与之关联。

您需要使用 SimpleDateFormat(或)Calendar API 来应用时区以获取长整型值。

相关内容

  • 没有找到相关文章

最新更新