java - java.text.ParseException:无法解析的日期:“2/9/2016 10:30:00 AM (GMT-05:00) 东部时间(美国和加拿大)”
问题描述
尝试解析此日期时出现异常:
“2/9/2016 10:30:00 AM (GMT-05:00) 东部时间(美国和加拿大)”代码
DateFormat format = new SimpleDateFormat("d/m/yyyy HH:mm:ss aaa zzz", Locale.ENGLISH);
format.parse("2/9/2016 10:30:00 AM (GMT-05:00) Eastern Time (US & Canada)");
解决方案
你用m
的月份是错误的。您必须使用M
月份和m
分钟。
我还建议您使用DateTimeFormatter而不是使用过时的SimpleDateFormat
. 检查这里以了解有关现代日期/时间 API 的更多信息。
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("d/M/yyyy hh:mm:ss a (zzz)")
.toFormatter(Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.parse("2/9/2016 10:30:00 AM (GMT-05:00)", formatter);
System.out.println(zdt);
}
}
输出:
2016-09-02T10:30-05:00[GMT-05:00]
还,
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("d/M/yyyy hh:mm:ss a (zzz)")
.appendLiteral(" Eastern Time (US & Canada)")
.toFormatter(Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.parse("2/9/2016 10:30:00 AM (GMT-05:00) Eastern Time (US & Canada)",
formatter);
System.out.println(zdt);
System.out.println(formatter.format(zdt));
}
}
输出:
2016-09-02T10:30-05:00[GMT-05:00]
2/9/2016 10:30:00 AM (GMT-05:00) Eastern Time (US & Canada)
推荐阅读
- ios - 矩形的动态高度来自 SwiftUI 中的文本内容
- networking - 在重新启动之间保留内核 IP 路由表
- graph - GNN 层如何知道批次中的哪个图具有给定的节点和节点特征?
- typescript - How to move .env file into build folder with tsconfig
- spring-boot - 提高 spring 批处理作业性能
- visual-studio-code - 有没有办法在 VSCode 中禁用 shift + enter ?
- python-docx - 将图像插入现有 word 文件时文件损坏
- c# - IModelValidatorProvider 和 IModelValidator 实现的问题。生成的错误没有得到正确处理
- for-loop - 为什么这会在第二个循环中两次获得同一行?
- javascript - React-native 将组件添加到数组并访问它们