如何获取day_of_month,month和year作为整数的参数?

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar start_date = Calendar.getInstance();
System.out.println(dateFormat.format(start_date.getTime()));

int day = start_date.get(Calendar.DAY_OF_MONTH);
int month = start_date.get(Calendar.MONTH);
int year = start_date.get(Calendar.YEAR);

String result = day + "/" + month + "/" + year;


但是,今天的日期是:2012年12月1日,而结果是:2012年1月11日。

最佳答案

这是预期的行为。月份从0到11。您可以通过发出以下命令进行检查:

System.out.println(Calendar.JANUARY);



Calendar
Calendar.MONTH in particular


顺便说一句,要将日期转换为字符串,您应该真正使用SimpleDateFormat

new SimpleDateFormat("dd/MM/yyyy").format(start_date.getTime());


(旁注,但很重要:SimpleDateFormat不是线程安全的,也不是线程安全的,因此不要尝试在多线程环境中将它们用作静态实例来进行优化!API文档:Date formats are not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.中也有说明)

关于java - 将Date作为整数获取参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13659518/

10-09 03:56