2012-10-08 51 views
4

有人请详细解释以下内容:Java - Date value long值:TimeZone如何相关?

我有一个long值,它代表date

  1. 会是怎样与long值相关联的timezone

  2. 如何把long的值转换为正确的日期time zone

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

+1

查看[java.util.Date的API文档](http://docs.oracle.com/javase/7/docs/api/java/util/Date.html)以获取解释。 Java教程中可能还有一些东西,但我没看过。 –

回答

2

当时间长格式,TimeZone不会与它相关联。

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

4

A日期(作为long或java.util.Date)表示时间。

除非您处理日历,否则不存在TimeZone。

您可以创建一个给定的时区和语言环境这样的日历:

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

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

long值代表java.util.Date是划时代经过的毫秒数。 (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磅。

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

  • 是否有办法确定与长日期值相关的时区?
    没有。

6

长是自1970年1月,GMT毫秒。所以,在这方面,这是GMT。