我有一个问题。我已经完成了所有相关的帖子,但无法摆脱这种情况。我正在尝试将美国/太平洋日期从字符串转换为日期对象:
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yy HH:mm:SS a z");
df.setTimeZone(TimeZoneUtil.getTimeZone("US/Pacific"));
String userTime = df.format(date);// User Time - Returns correct US/Pacific time
Date userDate = df.parse(userTime); // Always returns the date in EDT
我知道Date没有自己的格式,但我完全厌恶看到解析方法返回EDT时间。
我的问题是我想将userTime字符串转换为与我设置为SimpleDateFormat的格式/时区相同的Date对象。我需要帮助的人......绝望地等待。提前致谢
答案 0 :(得分:0)
解析[...] TimeZone值可能会被覆盖,具体取决于给定的模式和文本中的时区值。之前通过调用setTimeZone设置的任何TimeZone值可能需要恢复以进行进一步操作。
希望这可以提供帮助
答案 1 :(得分:0)
java.util.Date个对象不属于时区。当您调用toString时,构建的字符串将位于jvm的本地时区。
如果您想在不同时区构建字符串,则需要构建一个新的SimpleDateFormat,或者在格式化之前再次设置时区。