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

将mysql日期解析为ZoneDateTime

姬向明
2023-03-14

我试图以以下格式解析来自MySql的数据:

DATE_FORMAT(datetime,'%m-%d-%Y %H:%i')

Java解析器代码如下:

ZonedDateTime datetime = ZonedDateTime
                    .parse(
                            row[1].toString(), 
                            DateTimeFormatter
                                    .ofPattern("MM-dd-YYYY hh:mm")
                                    .withZone(ZoneId.of("Etc/GMT"))
                    );

java线程“AWT-EventQueue-0”中出现异常。时间总体安排DateTimeParseException:无法解析文本“06-08-2017 04:15”:无法从临时助理获取ZonedDateTime:{MinuteOfHour=15,DayOfMonth=8,WeekBasedYear[WeekFields[SUNDAY,1]]=2017,MonthOfYear=6,HourOfAmPm=4},ISO等java类型的/GMT。时间总体安排解析

有没有更好/更短的方法来完成这件事?

共有1个答案

梁丘俊人
2023-03-14

您的问题的本地修复是:

    ZonedDateTime datetime = LocalDateTime.parse(row[1].toString(), 
                    DateTimeFormatter.ofPattern("MM-dd-uuuu HH:mm"))
            .atZone(ZoneOffset.UTC);

请注意,我已经在您的格式模式中将YYYY更改为uuuu,并将hh更改为大写HH

编辑:我的嘴太满了。您自己的Java代码只需对格式模式进行这两个更改即可很好地工作。我将保留我的代码版本,以防有人能从中获得灵感。

也就是说,最好的解决方案是例如从JDBC驱动程序中获取一个Instant对象,而不是在数据库端格式化并在Java端解析的字符串。一个兼容JDBC 4.2的驱动程序应该能够为您提供这一点。

 类似资料:
  • 问题内容: 我在Swift的应用程序中有一个返回JSON,并且有一个返回日期的字段。当我引用此数据时,代码会给我类似“ / Date(1420420409680)/”的信息。如何将其转换为NSDate?请在Swift中用Objective-C测试示例,但没有成功。 问题答案: 这看起来与Microsoft的ASP.NET AJAX使用的日期的JSON编码非常相似,JavaScript和.NET中的

  • 问题内容: 如何将以下内容转换为日期以插入/更新到MySQL中的or 字段? 用于格式化日期,但不能反之。 问题答案: 您可能要使用该功能。这是函数的逆函数。 STR_TO_DATE(str,format) 这是函数的逆函数。它需要一个字符串和一个格式字符串。如果格式字符串同时包含日期和时间部分,则返回一个值;如果格式字符串仅包含日期或时间部分,则返回一个或值。如果从中提取的日期,时间或日期时间值

  • 问题内容: 有人可以向我展示一段解析此日期的Java代码: 2009-08-05 进入此GMT日期: 2009/217:00:00 ==== 到目前为止,我有: 但它不起作用 问题答案: 这是您要寻找的格式:

  • 我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。 以下代码的输出: 10月29日星期一05:57:00 PDT 2012

  • 在使用date格式自动设置为IE后,我试图解析某个包含日期条目为纪元数值的json文档。我需要不同的格式(也需要一毫秒) 所以问题是,如何解析IE。转换为带有Bson文档的某种自定义格式字符串。解析方法? 编辑:只是一个更新:问题在document.parse方法中,因为我不知道如何在解析json文档时使用tell.parse函数来使用自定义的日期格式。我总是得到某种默认的日期格式。如何发送给.p

  • 问题内容: 我需要将1/9/2011的varchar值转换为mySQL中的日期,并且只需要月份和年份。这样我就可以使用该功能(因此,我需要将以上内容转换为201101)。 我已经尝试过使用函数的各种方式: 但是我得到了奇怪的结果…(例如:2009-01-00) 我做错了什么? 问题答案: 要么 很难从你的例子中看出