java - 为什么我不能在 Java 中使用 SimpleDateFormat 获得正确的年份?

标签 java android simpledateformat date-parsing

我试图解析 MySql 格式的数据,遇到了 SimpleDateFormat。我可以得到正确的日期和月份,但我得到了一个奇怪的年份结果:

date = 2009-06-22;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date d = sdf.parse(date);
System.println(date);
System.println(d.getDate());
System.println(d.getMonth());
System.println(d.getYear());

输出:

2009-06-22
22           OK
5            Hum... Ok, months go from 0 to 11
109          o_O WTF ?

我尝试将格式更改为 YYYY-MM-dd(出现错误)和 yy-MM-dd(什么也没做)。我在 Android 上编程,不知道它是否重要。

目前,我使用拆分绕过它,但它很脏,阻止我使用 i18n 功能。

最佳答案

年份是相对于 1900 年的。这是 Date 类的一个“特征”。尝试使用 Calender

关于java - 为什么我不能在 Java 中使用 SimpleDateFormat 获得正确的年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028139/

相关文章:

android - kivy 中的屏幕支持设置为普通屏幕和大屏幕

安卓 11 : how to get current location

java - 我如何在 ANTLR 中实现流量控制(*执行*if-else,for...while....)?

java - 从集合中移除元素

java - 错误 :java. lang.IllegalArgumentException:尝试使用空实体创建 saveOrUpdate 事件

android - 随着电话分辨率的提高响应式网页设计

java - 如何将日期字符串从 JSON 转换为时间跨度

java - 将字符串转换或格式化为日期

java - SimpleDateFormat 错误地解析和比较时间

java - 部署在 JBOSS 上的 EJB 端点