/** * 根据年月获取对应的天数 */ int getDaysByYearMonth(int year, int month) { Calendar a = Calendar.getInstance(); a.set(Calendar.YEAR, year); a.set(Calendar.MONTH, month - 1); a.set(Calendar.DATE, 1); a.roll(Calendar.DATE, -1); int maxDate = a.get(Calendar.DATE); return maxDate; }
// 常用Date
java.util.Date date1 = new java.util.Date();
System.out.println(date1); //Tue Sep 12 09:52:12 CST 2017
java.util.Date date2 = new java.util.Date(0);
System.out.println(date2); //Thu Jan 01 08:00:00 CST 1970
java.sql.Date date3 = new java.sql.Date(0);
System.out.println(date3); //1970-01-01
java.sql.Timestamp date4 = new java.sql.Timestamp(0);
System.out.println(date4); //1970-01-01 08:00:00.0
java.sql.Time date5 = new java.sql.Time(0);
System.out.println(date5); //08:00:00
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy-MM-dd HH:mm:ss.sss");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
System.out.println(sdf.format(date3));
System.out.println(sdf.format(date4));
System.out.println(sdf.format(date5));
try {
System.out.println(sdf.parse("2000-1-33 00:00:00.000"));
} catch (ParseException e) {
System.out.println("报错");
}
//2000-02-02 00:00:00.000
try {
System.out.println(sdf.format(sdf.parse("2000-1-33 00:00:00.000")));
} catch (ParseException e) {
System.out.println("报错");
}
//"2017-1-1"会报错
System.out.println(java.sql.Date.valueOf("2017-01-01"));
//"2017-01-32"会报错
System.out.println(java.sql.Date.valueOf("2017-01-32"));
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
常见标准的写法"yyyy-MM-dd HH:mm:ss",注意大小写,时间是24小时制,24小时制转换成12小时制只需将HH改成hh,不需要另外的函数。