SimpleDateFormat更改日期对象中的月份

时间:2017-03-22 12:20:16

标签: java date

我有一个datepicker,其中我插入了出生日期,例如"1994/03/26"作为字符串。

在后端我想通过将我的字符串解析为日期对象然后更改这样的格式来更改dateformat:

Date dateOfBirth1 = new SimpleDateFormat("yyyy/mm/dd").parse(client.getDateOfBirth());//1994/03/26
String dateOfBirth = new SimpleDateFormat("dd-MM-yy").format(dateOfBirth1);

问题是:dateOfBirth将日期更改为26/01/94,时间应为26/03/94

为什么会这样?任何帮助表示赞赏

2 个答案:

答案 0 :(得分:5)

mm是分钟,而非月份,您的第一行格式为yyyy/mm/dd。所以你真正解析的是年/分/天

正如您在第二行上正确撰写的那样,您正在寻找的是月份的格式:MM。您的案例中的正确日期格式为yyyy/MM/dd。要获得预期的行为,请将代码更改为

Date dateOfBirth1 = new SimpleDateFormat("yyyy/MM/dd").parse(client.getDateOfBirth());//1994/03/26
String dateOfBirth = new SimpleDateFormat("dd-MM-yy").format(dateOfBirth1);

SimpleDateFormat Reference

答案 1 :(得分:1)

这个beh。是正确的,mm和MM在SimpleDateformat中有不同的含义......所以你要改变你给出 SimpleDateformat 对象的模式中的Minutes和Month信息

SimpleDateFormat("yyyy/mm/dd")

SimpleDateFormat("dd-MM-yy")