4
    Date now = new Date();
    Date then = new Date((long)obj.timestamp*1000);

    TimeZone tz = TimeZone.getDefault();

对java不是很熟悉,但是有没有办法将时区应用于Date对象?我找到了这个线程,但这是关于日历时区的,我认为这是不同的吗?

4

3 回答 3

3

Date对象默认使用当前时区。如果您尝试打印特定时区的时间,您可以使用SimpleDateFormat如下:

   //put the desired format      
   DateFormat formatter= new SimpleDateFormat("MM/dd/yyyy hh:mm:ss Z");
   //set the desired timezone
   formatter.setTimeZone(TimeZone.getTimeZone("Europe/London"));

   String formattedNowInTimeZone  = formatter.format(now);
   String formattedThenInTimeZone  = formatter.format(then);
于 2012-12-03T18:36:04.293 回答
2

使用SimpleDateFormat.setTimeZone(TimeZone)设置时区。

    SimpleDateFormat sdf = new SimpleDateFormat("yourformat");   
    TimeZone tz = TimeZone.getDefault(); 
    sdf.setTimeZone(tz);
    sdf.format(yourdate); //will return a string rep of a date with the included format
于 2012-12-03T18:35:05.830 回答
2

Date对象没有时区,它只是特定时刻的容器。如果要对其应用时区,则必须使用Calendar. 我这样做如下

Calendar cal = Calendar.getInstance();
cal.setTime( date );

如果您只是想显示Date针对时区的调整,那么您可以使用SimpleDateFormat应用适当的时区调整。

于 2012-12-03T18:36:58.203 回答