我的目标是从日期对象中提取日期和月份。我不能使用getDate()和getMonth(),因为它们已被弃用。
我使用了Calendar API,但是我无法获得所需的结果。请你建议......
我的目标是将月份和日期提取为整数。
Scanner input = new Scanner(System.in);
String a;
SimpleDateFormat formatter = new SimpleDateFormat("dd/mm/yyyy");
System.out.println("Please type in your name...");
a = input.nextLine();
System.out.println("You entered the name " + a);
//To print the current date
Date DOB;
Date presentdate = new Date();
System.out.println("Today is " + presentdate);
//To get a birthdate
System.out.println("Enter yout DOB in dd/mm/yyyy");
String b1 = input.nextLine();
DOB = formatter.parse(b1);
System.out.println("Your Date of Birth is" + DOB);
Calendar cal = Calendar.getInstance(); ;
cal.setTime(DOB);
System.out.println(cal);
int month = cal.get(Calendar.MONTH);
int date1 = cal.get(Calendar.DATE);
System.out.println(month);
System.out.println(date1);
答案 0 :(得分:3)
在Java日历中: -
Calendar.JANURAY=0;
Calendar.FEBRUARY=1;
.. ..
Calendar.DECEMBER=11;
所以改变你的代码就可以得到这样的月份: -
Calendar cal = Calendar.getInstance(); ;
cal.setTime(DOB);
int month = cal.get(Calendar.MONTH)+1;
int date1 = cal.get(Calendar.DATE);
答案 1 :(得分:1)
这很好,但要记住两件事
答案 2 :(得分:1)
您的格式不正确:本月需要“dd / MM / yy”,因为“mm”表示分钟:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
然后提取信息:
Calendar cal = Calendar.getInstance();
cal.setTime(DOB);
int month = cal.get(Calendar.MONTH) +1;
int date1 = cal.get(Calendar.DATE);
月份将从0开始,这就是+1的原因。