当前位置: 首页 > 面试题库 >

在Java中使用AEDT和AEST时区解析日期

罗和煦
2023-03-14
问题内容

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

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设备上运行。如何将这个字符串解析为date?


问题答案:

使用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 [澳大利亚/悉尼]

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



 类似资料:
  • 问题内容: 我有两个时间戳,它们以两种不同的格式描述同一时刻。 和。 我用Joda-Time用两个不同的日期格式解析时间戳。最后,我想有两个DateTime对象,它们在同一时刻相同。 DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其正常工作。 这是我想工作的代码: 问题答案: 如果您的默认时间zome是Europe / Berlin,则2010-10-03 18:58:0

  • 问题内容: 我想使用Java将以下日期转换为AEST格式。 2018-01-08T02:10:24.000 + 0000w 下面是我用来转换的代码。 模式有问题吗?请提出建议。 问题答案: 解析日期字符串时,必须使用格式化程序。另外,您还需要告诉它更改区域或区域偏移,以使其进入AEST / AEDT。 这可能起作用: 偏移量将显示为“ +1000”或“ +1100”,具体取决于一年中的时间。

  • 我最近试图使用java 8 time API制作一个通用的日期和时间解析方法,主要用于使用与旧代码接口。 我想做这样的事情: 问题是,对于时间API,要使用的类取决于模式DateTimeFormatter。parse永远不会失败,但会返回一个临时accessor,它很难处理并转换为可用的类。 和LocalDateTime。如果模式没有“dd/MM/yyyy”这样的时间信息,解析将失败。如果模式与预

  • 请考虑以下日期字符串 这在Java中可以使用以下模式识别: null 有没有解决方法可以在不进行字符串预处理的情况下正确解析截断的时区? 如果不是,哪个正则表达式最适合在一轮中对大量此类日期字符串进行预处理,例如使用调用,就像这个类似的问题一样?

  • 问题内容: 我有一个日期字符串,其格式为‘2009/05/13 19:19:30 -0400’。似乎Python的早期版本可能在strptime中支持尾随时区规范的%z格式标签,但2.6.x似乎已将其删除。 将这个字符串解析为datetime对象的正确方法是什么? 问题答案: 我有一个日期字符串,其格式为‘2009/05/13 19:19:30 -0400’。似乎Python的早期版本可能在str

  • 问题内容: 我正在尝试像这样解析日期: 我的价值是5个小时,因为我居住在UTC + 3时区。但是我需要具有2am的值,但是要使用相同的格式字符串(以指定格式给出的日期字符串,我不允许更改)。这该怎么做? 更新:我不需要在适当的时区中格式化日期,我需要通过没有时区的值来比较这些日期。我想确切地解析该日期,而忽略原始字符串中的时区- 且始终包含相同的时区(例如,my),无论包含原始字符串的内容是什么: