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

如何在日期解析(Java)中忽略时区标识符?

岑熙云
2023-03-14
问题内容

我正在尝试像这样解析日期:

DateFormat df = new SimpleDateFormat("MMM dd, yyyy K:mm:ss,SSS a z", Locale.ENGLISH);
Date date = df.parse("Oct 04, 2015 2:11:58,757 AM UTC");

我的价值是5个小时,因为我居住在UTC +
3时区。但是我需要具有2am的值,但是要使用相同的格式字符串(以指定格式给出的日期字符串,我不允许更改)。这该怎么做?

更新:我不需要在适当的时区中格式化日期,我需要通过没有时区的值来比较这些日期。我想确切地解析该日期,而忽略原始字符串中的时区-
且始终包含相同的时区(例如,my),无论包含原始字符串的内容是什么:UTC或UTC + 3或其他。


问题答案:

Upd2:已解决

好吧,现在我得到了我想要的:

DateFormat df = new SimpleDateFormat("MMM dd, yyyy K:mm:ss,SSS a z", Locale.ENGLISH);
Date date = df.parse("Oct 04, 2015 2:11:58,757 AM UTC");
long diff = TimeZone.getDefault().getRawOffset() - df.getTimeZone().getRawOffset();
date = new Date(date.getTime()-diff);

无论如何,谢谢大家



 类似资料:
  • 这是我从服务器返回的日期格式: 4月05 2016 23:59:00星期二GMT-0700(PDT) 这是我到目前为止所拥有的:“EEE MMM dd yyyy HH: mm: ss'GMT'Z(zzz)” 哪些字符解析有困难?

  • 问题内容: 我正在尝试解析此日期,但无法正常工作: 如果我使用strDate =尝试此代码,我将获得肯定的答案。有什么问题?如何解析这种格式? PS。我从那里得到了这个日期,并且没有关于用户选择日期时如何修改日期格式的说明。 问题答案: 你不能期望使用设置为其他格式的SimpleDateFormat解析日期。 要解析“ 2009年Thu Jun 18 20:56:02 EDT 2019”日期字符串

  • 问题内容: 我正在尝试解析格式的字符串 放入日期对象。我的代码如下: 但是我遇到了“解析错误”。我无法更改日期的输入格式,也无法将时区设置为静态值,因为此代码将在Andorid设备上运行。如何将这个字符串解析为date? 问题答案: 使用java.time框架(JSR 310),您可以执行以下操作: …打印: 2014-02-01T15:00:19 + 11:00 [澳大利亚/悉尼] 虽然我不确定

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

  • 答案和文档显示有一个jackson注释,它应该允许日期格式。 在调用Rest-Service时,我将得到一个: 似乎注释被忽略了。调试解析方法模式设置为和。