Java - Date as long value:TimeZone如何关联?

时间:2012-10-08 03:48:05

标签: java datetime calendar timezone

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

我的long值代表date

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

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

  3. 是否有办法识别与timezone值相关联的long date

4 个答案:

答案 0 :(得分:6)

格林威治标准时间1970年1月以来的长达数毫秒。所以,就此而言,它是GMT。

答案 1 :(得分:4)

日期(长或java.util.Date)代表一个时刻。

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

您可以为给定的TimeZone和Locale创建日历,如下所示:

long rightNow = System.currentTimeMillis();
Locale exampleLocale = Locale.GERMANY;
TimeZone zone = TimeZone.getTimeZone("EST");

Calendar theCalendar = Calendar.getInstance(zone, exampleLocale);
theCaledar.setTime(new Date(rightNow));

答案 2 :(得分:4)

表示long的{​​{1}}值是从纪元开始经过的毫秒数。 (1970年1月1日)

java.util.Date
  • 与长值相关的时区是什么?
    你能把一个单位附加到一个长值。第
    这类似于给出一个int 2它代表什么? 。它可能是2英里或2磅。

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

  • 是否有办法识别与长日期值相关的时区?
    不。

答案 3 :(得分:2)

如果时间为长格式,TimeZone将不会与之关联。

您需要使用SimpleDateFormat(或)Calendar API将时区应用于长值。