当前位置: 首页 > 知识库问答 >
问题:

转换字符串到日期格式与时区抛出解析错误

丁子石
2023-03-14

我有下面的字符串s1。

字符串s1=“2021-10-12T14:28:46.615 00:00”

我想将其转换为完全相同的java.util.Date实例- 2021-10-12T14:28:46.615 00:00

使用下面是返回"2021-10-12T14:38:15.000-0400"

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss");
Date d1 = dateFormat.parse(s1);

下面使用的是抛出解析错误

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");

日期d1=日期格式。解析(s1);

请告知我应该使用的日期格式

共有1个答案

程和蔼
2023-03-14

如果您必须使用遗留(且已弃用)日期类,这里有一种方法。但是你应该专注于使用java。时间包。

String s1 = "2021-10-12T14:28:46.615+00:00";


OffsetDateTime odt = OffsetDateTime.parse(s1);
long epochMilli = odt.toInstant().toEpochMilli();
Date date = new Date(epochMilli);
System.out.println(date);

指纹

Tue Oct 12 10:28:46 EDT 2021

请注意,由于偏移量为00:00,因此时区为UTC/Greenwich,并进行了相应调整。如果需要,可以使用。plusHours()。minusHours()parse返回的值进行分析,以根据位置调整偏移量。

 类似资料:
  • 问题内容: 我对这部分代码有疑问,我正在尝试在预订表中插入一条记录。我试图输入的值是(6,3,3,20/06/2018 00:00:00,400,2800.00,True,560.00) 我收到的错误如下, “从字符串转换日期和/或时间时转换失败。” 我已尽力研究此问题,但我不知道如何解决此问题。任何帮助表示赞赏。 问题答案: Okey,您的代码有一些问题。我将尝试按顺序解释所有这些内容。 首先,

  • 我有一些日期格式的字符串,例如 我使用SimpleDateForate并尝试将String类型转换为Date类型。它将String类型转换为Date类型,但是Java无法识别时区“MYT”,而是将其设置为计算机的默认时区,即“CST”。我需要在Date对象中记录时区。我该怎么做?

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我得到一串零。有人能帮忙吗?

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?

  • 我有一个格式化的字符串日期 2020/04/16 (年/月/日) 我想把这个字符串解析成日期时间 显然不起作用,没有正确的日期格式。 有人知道把这个字符串解析成日期时间的最好方法是什么吗?