我在日期尝试使用不同的时区,一切正常,但 SE亚洲标准时间未解析显示无法解析的日期例外的完整日期。
String date="Sun Jan 18 2015 22:11:44 GMT+0700 (SE Asia Standard Time)";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (zzzz)");
try{
System.out.println(new Timestamp(sdf.parse(date).getTime()));
}catch(Exception e){
e.printStackTrace();
}
答案 0 :(得分:1)
在Java中看起来这个时区被称为“ Indochina Time ”
我认为时区的名称不需要解析正确的日期,因为你的字符串中也有时间偏移量。因此,从字符串中删除时区名称应该这样做。
public static void main(String[] args) {
String date = "Sun Jan 18 2015 22:11:44 GMT+0700 (SE Asia Standard Time)";
date = date.substring(0, date.indexOf("("));
SimpleDateFormat sdf = new SimpleDateFormat(
"EEE MMM dd yyyy HH:mm:ss 'GMT'Z", Locale.ENGLISH);
try {
System.out.println(new Timestamp(sdf.parse(date).getTime()));
} catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:1)
public static void main(String[] args) {
Arrays.asList(TimeZone.getAvailableIDs()).stream()
.map(TimeZone::getTimeZone)
.filter(zone -> zone.getRawOffset() == 7 * 60 * 60 * 1000)
.forEach(zone -> System.out.printf("%-20s %s\n", zone.getID(), zone.getDisplayName()));
}
Antarctica/Davis Davis Time Asia/Bangkok Indochina Time Asia/Ho_Chi_Minh Indochina Time Asia/Hovd Hovd Time Asia/Jakarta West Indonesia Time Asia/Krasnoyarsk Krasnoyarsk Time Asia/Novokuznetsk Krasnoyarsk Time Asia/Phnom_Penh Indochina Time Asia/Pontianak West Indonesia Time Asia/Saigon Indochina Time Asia/Vientiane Indochina Time Etc/GMT-7 GMT+07:00 Indian/Christmas Christmas Island Time VST Indochina Time