【发布时间】:2020-06-08 13:14:25
【问题描述】:
我正在尝试使用SimpleDateFormat 解析日期(可以是任何格式)。为此,我准备了使用SimpleDateFormat 中可用符号的格式列表,并尝试使用以下代码解析日期字符串:
private Pair<Date,SimpleDateFormat> parseTimeStamp(String input)
{
Pair<Date,SimpleDateFormat> dateTime=null;
for (SimpleDateFormat dateFormat : TIMESTAMP_FORMATS) {
try {
Date temp = dateFormat.parse(input);
dateTime=new Pair<Date, SimpleDateFormat>(temp,dateFormat);
break;
} catch (ParseException e) {
}
}
return dateTime;
}
private static final List<SimpleDateFormat> TIMESTAMP_FORMATS = new ArrayList<SimpleDateFormat>() {{
add(new SimpleDateFormat("yyyyMMddhh:mm:ssa"));
add(new SimpleDateFormat("yyyyMMddhh:mma"));
add(new SimpleDateFormat("yyyyMMddhha"));
add(new SimpleDateFormat("yyyyMMddHH:mm:ss"));
add(new SimpleDateFormat("yyyyMMddHH:mm"));
add(new SimpleDateFormat("yyyyMMddHH"));
add(new SimpleDateFormat("yyyyMMddhhmmssa"));
add(new SimpleDateFormat("yyyyMMddhhmma"));
add(new SimpleDateFormat("yyyyMMddHHmmss"));
add(new SimpleDateFormat("yyyyMMddHHmm"));
add(new SimpleDateFormat("yyyyMMddZ"));
add(new SimpleDateFormat("yyyyMMddz"));
add(new SimpleDateFormat("yyyyMMddX"));
add(new SimpleDateFormat("dd-MM-yyyyhh:mm:ssa"));
add(new SimpleDateFormat("dd-MM-yyyyhh:mma"));
add(new SimpleDateFormat("dd-MM-yyyyhha"));
add(new SimpleDateFormat("dd-MM-yyyyHH:mm:ss"));
add(new SimpleDateFormat("dd-MM-yyyyHH:mm"));
add(new SimpleDateFormat("dd-MM-yyyyHH"));
add(new SimpleDateFormat("dd-MM-yyyyhhmmssa"));
add(new SimpleDateFormat("dd-MM-yyyyhhmma"));
add(new SimpleDateFormat("dd-MM-yyyyHHmmss"));
.
.
.
.
.
.
}
}
当我解析 06-06-2020 1:08:00PM 时,返回的格式是 yyyyMMddHH 而不是 dd-MM-yyyyy hhmmssa。
我想问一下为什么会出现这种差异以及如何解决这个问题?
【问题讨论】:
-
您的第一个大错误是不应该使用
Date或SimpleDateFormat。它们已被弃用。您应该使用LocalDateTime和DateTimeFormatter。在您过渡到这些课程之前,您学到的有关此特定帖子的任何内容都将是有问题的。
标签: java date timestamp compare simpledateformat