big*_*ata 10 java calendar date date-format
如何从java中的日期获取月份:
DateFormat inputDF = new SimpleDateFormat("mm/dd/yy");
Date date1 = inputDF.parse("9/30/11");
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int year = cal.get(Calendar.YEAR);
System.out.println(month+" - "+day+" - "+year);
Run Code Online (Sandbox Code Playgroud)
此代码返回日期和年份,但不是月份.
输出:
0 - 30 - 2011
Run Code Online (Sandbox Code Playgroud)
das*_*ght 17
这是因为你的格式不正确:你需要"MM/dd/yy"一个月,因为"mm"是几分钟:
DateFormat inputDF = new SimpleDateFormat("MM/dd/yy");
Date date1 = inputDF.parse("9/30/11");
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int year = cal.get(Calendar.YEAR);
System.out.println(month+" - "+day+" - "+year);
Run Code Online (Sandbox Code Playgroud)
打印8 - 30 - 2011(因为月份是零基础; 演示)
首先,您使用的mm是日期格式,根据Javadocs,这是"分钟".您将分钟设置为而9不是月份.看起来月份默认为0(1月).
使用MM(大写'M')来解析月份.然后,你会看到8,因为在Calendar几个月内从0开始,而不是1.添加1以获取所需的内容9.
格列高利历和朱利安历的一年中的第一个月是1月,即0
// MM is month, mm is minutes
DateFormat inputDF = new SimpleDateFormat("MM/dd/yy");
Run Code Online (Sandbox Code Playgroud)
然后
int month = cal.get(Calendar.MONTH) + 1; // To shift range from 0-11 to 1-12
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48118 次 |
| 最近记录: |