我想解析Java中的時區字符串的時間戳。我的字符串是:轉換時間戳字符串時獲取無法解析的日期異常
"2013-01-01 15:30:00.2 +05:00"
"2003-01-01 02:59:04.123 -8:00"
這是我的代碼來分析它:
java.text.ParseException: Unparseable date: "2013-01-01 15:30:00.2 +05:00"
我也:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");
simpleDateFormat.parse("2013-01-01 15:30:00.2 +05:00");
不過,我當我運行的代碼收到此錯誤信息試用下面的代碼解析它:
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis();
DateTime dateTime = dateTimeFormatter.parseDateTime("2003-01-01 02:59:04.123 -8:00");
Timestamp timeStamp = new Timestamp(dateTime.getMillis());
這讓我異常:
Invalid format: "2003-01-01 02:59:04.123 -8:00" is malformed at " 02:59:04.123 -8:00"
我也試着插入日期後的字符串中的「T」,但它也給了無效格式異常:
Invalid format: "2003-01-01T02:59:04.123 -8:00" is malformed at " .123 -8:00"
這必須是非常簡單的 - 這不是我不知道我要去哪裏錯了。
感謝您的幫助!
這可能幫助。 http://stackoverflow.com/questions/4542679/java-time-zone-when-parsing-dateformat –
請注意「ISODateTimeFormat.dateTimeNoMillis」的「no millis」部分 - 然後查看您嘗試解析的值。 –
我假設'DateTimeFormatter'代碼是Joda時間,而不是Java 8?如果你在你的帖子中指出這一點會很有用。 –