Cal*_*leb 2 java calendar date
我需要使用澳大利亚时区创建一个java.util.Date对象.下游组件中使用的标记库需要此对象(因此我坚持使用Date).
这是我尝试过的:
TimeZone timeZone = TimeZone.getTimeZone("Australia/Sydney");
GregorianCalendar defaultDate = new GregorianCalendar(timeZone);
Date date = defaultDate.getTime();
Run Code Online (Sandbox Code Playgroud)
但是,"date"始终返回当前本地时间(在我的情况下,ET).我在这做错了什么?甚至可以使用不同的时区设置Date对象吗?
更新:
谢谢你的回复!如果我想将格式化的日期输出为字符串,则此方法有效,但如果我想返回日期对象则不行.例如:
Date d = new Date();
DateFormat df = new SimpleDateFormat();
df.setTimeZone(TimeZone.getTimeZone("Australia/Sydney"));
String formattedDate = df.format(d); // returns Sydney date/time
Date myDate = df.parse(formattedDate); // returns local time(ET)
Run Code Online (Sandbox Code Playgroud)
我想我最终会重新修改我们的日期taglib.
甚至可以使用不同的时区设置Date对象吗?
不,这是不可能的.正如其javadoc描述的那样,所有java.util.Date
包含的只是纪元时间,它始终是相对于1970年1月1日UTC/GMT的秒数.在Date
不包含其他信息.要使用时区格式化,请使用SimpleDateFormat#setTimeZone()
归档时间: |
|
查看次数: |
9423 次 |
最近记录: |