我有本地日期时间的字符串表示和 Java 时区。
我正在尝试以 MM/dd/yyyy HH:mm:ssZ 格式获取输出,但我不知道如何创建具有正确日期时间和时区的日历或 JodaTime 对象。如何将 TimeZone 转换为可由 SimpleDateFormat 'Z' 或 'z' 解析的值?
TimeZone tz = TimeZone.getTimeZone("America/Chicago");
String startDate = "08/14/2014 15:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Calendar cal = Calendar.getInstance(tz);
cal.setTime(sdf.parse(startDate));
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ssZ");
和
sdfZ.format(cal.getTime())
返回
08/14/2014 15:00:00-0400
这是 EST
。
创建日历或 Joda DateTime 并通过解析字符串“08/14/2014 15:00:00”来设置单独的年/月/日/小时/分钟值是唯一的解决方法吗?
最佳答案
Calendar getTime()
- 返回表示此 Calendar 时间值的 Date 对象(与 Epoch 的毫秒偏移量(01-01-1970 00:00 GMT)“),无论您显示的是哪个时区. 但不同时区的小时会有所不同。 get(Calendar.HOUR_OF_DAY)
你应该试试
sdfZ.setTimeZone(tz);
关于java - 日期时间字符串 + TimeZone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558187/