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

解析ZoneDateTime。now()与Java中的DateTimeFormatter

濮阳安澜
2023-03-14

我正在尝试解析具有特定格式的当前时间戳,但每次尝试我都会得到一个java.time.format.DateTimeParseException。我的代码:

ZonedDateTime.parse(
    ZonedDateTime.now().toString(),
    DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS")
            .withZone(ZoneId.of("UTC")) //I also tried ZoneId.systemDefault()
)

结果:

java.time.format.DateTimeParseException:
Text '2018-02-27T11:01:18.776+01:00[Europe/Berlin]' could not be parsed at index 2

问题是为什么我不能以所需的格式解析它以及如何实现它?

附言:我也看到了这篇文章,并尝试设置ZoneId,但没有帮助。

共有3个答案

沃宇
2023-03-14

这应该可以转换< code>now()结果字符串-

String inputStr = ZonedDateTime.now().toString();
ZonedDateTime parsed = ZonedDateTime.parse(inputStr, DateTimeFormatter.ISO_DATE_TIME) 


System.out.println(parsed);

如果你想反过来转换日期-

 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS");

        String parsed = pattern.format(ZonedDateTime.now());
        System.out.println(parsed);
劳鹏云
2023-03-14

日期时间格式

"dd.MM.yyyy HH:mm:ss.SSS"
'2018-02-27T11:01:18.776+01:00[Europe/Berlin]'
ZonedDateTime.now().toString()
夏侯臻
2023-03-14

解析来自ZoneDateTime的结果。toString()返回您根本不需要显式格式化程序:

    System.out.println(ZonedDateTime.parse(
            ZonedDateTime.now(ZoneId.of("Asia/Kuala_Lumpur")).toString()));

这打印

2018-02-27T21:48:16.214832 08:00[亚洲/Kuala_Lumpur]

您问题中的格式化程序非常适合格式化:

    System.out.println(ZonedDateTime.now(ZoneId.of("Asia/Kuala_Lumpur"))
            .format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS")));

这是印刷的:

27.02.2018 21:48:16.237

你混淆了这个词的用法吗?解析意味着分析字符串以理解它,在这种情况下,将其转换为日期时间对象,如ZonedDateTime。相反的转换称为格式化,将日期-时间对象转换为特定格式的字符串,通常用于人类可读性或数据交换。

 类似资料:
  • 我试图以以下格式解析来自MySql的数据: Java解析器代码如下: java线程“AWT-EventQueue-0”中出现异常。时间总体安排DateTimeParseException:无法解析文本“06-08-2017 04:15”:无法从临时助理获取ZonedDateTime:{MinuteOfHour=15,DayOfMonth=8,WeekBasedYear[WeekFields[SUN

  • 问题内容: MySQL 和之间有什么区别? 问题答案: 对于此类问题,始终值得首先阅读手册。MySQL手册中的日期和时间函数 返回当前时间的DATE部分。CURDATE()手册 以各种格式返回日期和时间部分作为时间戳,具体取决于如何请求。NOW()手册。

  • 如何从不包含zone和其他字段的字符串中解析ZoneDateTime? 以下是在斯波克进行的测试: 前两个测试通过,所有其他测试都通过了DateTimeParseException: '2014-04-23T04:30:45.123'无法在索引23处解析 '2014-04-23T04:30'无法在索引16处解析 '2014-04-23'无法在索引10处解析 如何解析时间和区域设置为默认的不完整日期

  • 本文向大家介绍全面解析Java中的注解与注释,包括了全面解析Java中的注解与注释的使用技巧和注意事项,需要的朋友参考一下 注解 一、什么是 Annotation? (注解 or 注释) Annotation, 准确的翻译应该是 -- 注解。 和注释的作用完全不一样。 Annotation 是JDK5.0及以后版本引入的一个特性。 与类、接口、枚举是在同一个层次,可以成为java 的一个类型。 语

  • 我对OffsetDateTime的用法非常陌生,我正在尝试将OffsetDateTime字符串与OffsetDateTime进行比较。以这种方式在java中使用now(), 但我正在学习java。时间总体安排所有3种情况下的DateTimeParseException。 然而,如果我将2个OffsetDateTime字符串与CompareTo方法进行比较,它的工作就很好了。 有没有人能在这方面给我