Date now = new Date();
Date then = new Date((long)obj.timestamp*1000);
TimeZone tz = TimeZone.getDefault();
不熟悉java,但有没有办法将时区应用于Date
对象?我发现this线程,但这是关于日历时区,我相信这是不同的?
答案 0 :(得分: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);
答案 1 :(得分:2)
使用SimpleDateFormat.setTimeZone(TimeZone)设置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
答案 2 :(得分:2)
Date
个对象没有时区,它只是特定时刻的容器。如果您要为其应用时区,则必须使用Calendar
。我这样做如下
Calendar cal = Calendar.getInstance();
cal.setTime( date );
如果您只想显示针对某个时区调整的Date
,那么您可以使用SimpleDateFormat来应用适当的时区调整。