Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
String data = calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE) + " " + calendar.get(Calendar.DAY_OF_MONTH) + "-"
+ calendar.get(Calendar.MONTH) + "-"
+ calendar.get(Calendar.YEAR);
System.out.println(data);
nad print:23:3 15-6-2015但今天是2015年7月15日至23日 月份是先前的,如何将23:3更改为23:03?
答案 0 :(得分:1)
这完全不直观且令人讨厌,但这就是API的设计方式;当你要求一个月时返回的值是零基础的;你必须添加一个来获得真实的"月份数。
查看Calendar.MONTH
字段的文档:
get和set的字段编号,表示月份。这是特定于日历的值。格里高利和朱利安日历中一年中的第一个月是
JANUARY
,其为0 ;最后一个取决于一年中的月数。 (强调我的)
此外,不是手动构建字符串,而是使用像SimpleDateFormat
这样的东西要容易得多;那时你不会遇到这个问题,你也可以打印出23:03
的时间:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd-MM-yyyy");
sdf.setTimeZone(calendar.getTimeZone());
System.out.println(dateFormat.format(calendar.getTime()));