gpt4 book ai didi

java - 将字符串解析为 JodaTime 的格式无效问题

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:28 25 4
gpt4 key购买 nike

String dateString = "20110706 1607";
DateTimeFormatter dateStringFormat = DateTimeFormat.forPattern("YYYYMMDD HHMM");
DateTime dateTime = dateStringFormat.parseDateTime(dateString);

生成的堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "201107206 1607" is malformed at " 1607"
at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:644)
at org.joda.time.convert.StringConverter.getInstantMillis(StringConverter.java:65)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:171)
at org.joda.time.DateTime.<init>(DateTime.java:168)
......

有什么想法吗?如果我使用模式“YYYYMMDD”将字符串截断为 20110706,它可以工作,但我还需要小时和分钟值。奇怪的是,我可以使用相同的模式“YYYYMMDD HHMM”毫无问题地将 Jodatime DateTime 转换为字符串

感谢收看

最佳答案

看看您的模式 - 您指定了两次“MM”。那不可能是对的。那将尝试从文本的两个不同位解析同一字段(在本例中为月份)两次。你希望哪一个获胜?你想要:

DateTimeFormat.forPattern("yyyyMMdd HHmm")

查看documentation for DateTimeFormat看看一切意味着什么。

请注意,尽管使用该模式调用 toString 会生成一个字符串,但它不会生成您想要的字符串。如果由于大小写的原因输出甚至包含“YYYY”和“DD”,我也不会感到惊讶,尽管我现在无法对其进行测试。至少你会有两次月份,而不是最后出现的分钟。

关于java - 将字符串解析为 JodaTime 的格式无效问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com