java - 在java中用AEDT和AEST时区解析日期

标签 java date timezone

我正在尝试解析一个格式字符串

Thu Apr 07 11:45:28 AEST 2016

进入日期对象。我的代码如下所示:

SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
try{
    Date time = parserSDF.parse("Sat Feb 01 15:00:19 AEDT 2014");
}catch(Exception e){
    e.printStackTrace();
}

但是我遇到了“解析错误”。我无法更改日期的输入格式,也无法将我的时区设置为静态值,因为此代码将在 andorid 设备上运行。如何将此字符串解析为日期?

最佳答案

使用 java.time框架 ( JSR 310 ),你可以这样做:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss zzz yyyy");
ZonedDateTime zdt = ZonedDateTime.parse("Sat Feb 01 15:00:19 AEDT 2014", dtf);
System.out.println(zdt);

...打印:

2014-02-01T15:00:19+11:00[Australia/Sydney]

虽然我不确定为什么它选择悉尼而不是墨尔本。

关于java - 在java中用AEDT和AEST时区解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36473928/

相关文章:

java - JSONObject 文本必须以 java 中的 1 [字符 2 第 1 行] 处的 '{' 开头

c++ - 使用 boost::date_time 在当前时区获取当前时间的最简单方法?

php - 获取用户时区

Java - 由于缺少时区信息而导致 UnresolvedAddressException?

sql-server - 转换例如。 2012-05-25 自 1970 年 1 月 1 日以来的秒数

java - 我可以在 iBatis 上使用 subMap value = "X"和 subMap value = "!X"的 Discriminator 吗?

java - Ghost4J/Ghostscript - 尝试将字体嵌入 PDF 时出现错误 100

java - 异常org.hibernate.exception.GenericJDBCException : could not extract ResultSet while feching data using hql

php - MySQL 选择日期范围内的所有日期,即使当天没有可用数据

DATE(字段)上的 MySQL 空结果集 =