java - 2016 年 4 月 22 日的日期格式?

标签 java date datetime

日期的日期格式是什么:
2016年4月1日
2016年4月3日
2016年4月22日

有没有 API 可以解析这样的日期?

编辑:重复的问题不包含任何有关解析包含 1(st)、2(nd)、3(rd) 的日期的答案。我不知道如何解析第 1 个中的 st、第 2 个中的 nd 和第 3 个中的 rd .

最佳答案

问题是 Java 不理解 ordinal indicator后缀、第一个、第二个、第三个等等。您首先需要删除它,然后将其传递到 DateFormat 中。

我还建议确保您的区域设置正确设置,因为“April”在不同语言中将是不同的字符串,这将影响软件的地理可移植性。

public static void main(String[] args) throws ParseException {
    System.out.println(parseWithOrdinals("1st April,2016"));
    System.out.println(parseWithOrdinals("3rd April,2016"));
    System.out.println(parseWithOrdinals("22nd April,2016"));
}

private static Date parseWithOrdinals(String date) throws ParseException {
    DateFormat format = new SimpleDateFormat("dd MMM,yyyy", Locale.UK);
    String corrected = date.replaceFirst("(\\d+)+.*\\s(.*)", "$1 $2");
    return format.parse(corrected);
}

关于java - 2016 年 4 月 22 日的日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786407/

相关文章:

java - 使线程在来自 EDT 的非 EDT(事件调度线程)线程上运行

java - 面积图更改默认颜色

C# 日期 - 数据库、显示和本地化

sql-server - 按日期计算滚动差异的 SQL 查询

python - pytz的奇怪时区问题

java - JMX RMI 身份验证不起作用

java - 不确定如何在从 ObjectInputStream() 加载后显示对象

java - SQL DATE 与 java.sql.Date 中的时区

R:从 xlsx 导入日期和时间

python - 将多个数组合并为日期时间