java - 日期格式转换为 21 世纪日期

标签 java date date-format

我有一个格式为 DD/MM/YY 的日期(类似于:10/12/03)。我想使用 SimpleDateFormat 将其格式化为不同的格式(即 MM/dd/yyyy)。

当我尝试这个时:

try {
                // Old Date is 10/12/03
                newDate = simpleDateFormat.format(format.parse(oldDate));
            } catch (ParseException e) {
                e.printStacktrace();
            }

目前,格式化后年份为 0003,但我希望年份为 2003。请问对此有何意见?

最佳答案

看看SimpleDateFormat#set2DigitYearStart

这允许您定义两位数年份的“基准”年份,例如......

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);

SimpleDateFormat inFormat = new SimpleDateFormat("dd/MM/yy");
inFormat.set2DigitYearStart(cal.getTime());
SimpleDateFormat outFormat = new SimpleDateFormat("MM/dd/yyyy");
try {
    // Old Date is 10/12/03
    String value = outFormat.format(inFormat.parse("10/12/03"));
    System.out.println(value);
} catch (ParseException e) {
    e.printStackTrace();
}

将输出12/10/2003

关于java - 日期格式转换为 21 世纪日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049935/

相关文章:

java - 客户端无法在聊天应用程序中连接到服务器

java - Prometheus 无法提取配置的指标

java - 尽管所需的索引是 'serving' ,但为什么我的 AppEngine 查询会抛出 DatastoreNeedIndexExceptions ?

java - Selenium Webdriver (Chrome) 无法在悬停元素上找到下拉菜单

php - 无法找到两个日期之间的正确记录

Mysql查询返回-help菜单而不是查询结果

arrays - 如何使用包含日期的字典对数组进行排序?

python - python中两个日期范围之间的重叠日期

java - 以比例字体格式化的 JTable 列中的对齐日期部分

java - SimpleDateFormat 和 strtotime 之间的区别?