我正在使用Android应用程序,当我需要将当前日期发送到服务器时,我通过currentTime = Calendar.getInstance().getTime();
得到我的实际日期并且我使用 SimpleDateFormat解析它 "yyyy/MM/DD"
,但我今天获得的价值非常奇怪:38
我使用的代码是:
currentTime = Calendar.getInstance().getTime();
SimpleDateFormat df1 = new SimpleDateFormat("yyyy/MM/DD");
String formattedDate1 = df1.format(currentTime.getTime());
NB :currentTime
返回的日期值是正确的
PS :此代码在前几天正常运行!
答案 0 :(得分:3)
解析日期的模式匹配区分大小写。生成解析模式时需要非常小心,并参考the documentation。
DD
,所有大写/大写字母,指的是当年的当天。今天,2月7日是一年中的第38天(1月31日,2月7日)。
dd
,所有小写字母,指的是当月的当天。这将在2月7日解析为7。
因此,您应该使用的正确模式是:yyyy/MM/dd
。
最近工作,因为它是在1月份之前。仅限1月份,dd
和DD
将返回相同的值。
答案 1 :(得分:2)
我相信您希望d
不是DD
D
返回当年的当天(1月31日,2月7日,我假设)。
d
返回当月的当天。
酱:https://developer.android.com/reference/java/text/SimpleDateFormat.html