Date now = new Date();
Date then = new Date((long)obj.timestamp*1000);
TimeZone tz = TimeZone.getDefault();
对java不是很熟悉,但是有没有办法将时区应用于Date
对象?我找到了这个线程,但这是关于日历时区的,我认为这是不同的吗?
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);
使用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
Date
对象没有时区,它只是特定时刻的容器。如果要对其应用时区,则必须使用Calendar
. 我这样做如下
Calendar cal = Calendar.getInstance();
cal.setTime( date );
如果您只是想显示Date
针对时区的调整,那么您可以使用SimpleDateFormat应用适当的时区调整。