public static class mjb {/封装时间格式
public static String toLDS(Date dt) {
SimpleDateFormat mm = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
return mm.format(dt);//2020年06月08日 11时55分39秒 星期一
}
public static String toSDS(Date dt) {
SimpleDateFormat mm = new SimpleDateFormat("yy年MM月dd日 HH时mm分");
return mm.format(dt);//20年06月08日 11时55分
}
public static String toLTS(Date dt) {
SimpleDateFormat mm = new SimpleDateFormat("HH mm ss SSSS");
return mm.format(dt);//20/06/08 11:55
}
public static String toSTS(Date dt) {
SimpleDateFormat mm = new SimpleDateFormat("yy/MM/dd HH:mm");
return mm.format(dt);//11 55 39 0847
}
}
public static boolean isLeapYear(int year) {
GregorianCalendar calendar = new GregorianCalendar();
return calendar.isLeapYear(year);
/* 闰年 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
days = 29;*/
}
public static void main(String[] args) throws ParseException {
System.out.println(isLeapYear(2000));
Date m = new Date();
System.out.println(mjb.toLDS(m));
System.out.println(mjb.toLTS(m));
System.out.println(mjb.toSDS(m));
System.out.println(mjb.toSTS(m));
System.out.println("3############################");
///
SimpleDateFormat mjbformat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//2020年06月08日 12时00分
SimpleDateFormat mjbformat1 = new SimpleDateFormat("yy/MM/dd HH:mm"); //20/06/08 12:00
SimpleDateFormat mjbformat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2020-06-08 12:00:01
SimpleDateFormat mjbformat3 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E "); //2020年06月08日 12时00分01秒 星期一
SimpleDateFormat mjbformat4 = new SimpleDateFormat("一年中的第 D天 一年中第w个星期 一月中第W个星期 "); //一年中的第 160天 一年中第24个星期 一月中第2个星期
/*
* 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 时区
*/
Date format = new Date();
System.out.println(mjbformat.format(format));// 2020年06月08日 11时40分04秒
System.out.println(mjbformat1.format(format));// 20/06/08 11:40
System.out.println(mjbformat2.format(format));
System.out.println(mjbformat3.format(format));
System.out.println(mjbformat4.format(format));
System.out.println(format.toGMTString()); //8 Jun 2020 04:02:47 GMT
System.out.println(format.toLocaleString()); //2020-6-8 12:02:47
System.out.println(format.toString()); //Mon Jun 08 12:02:47 CST 2020
System.out.println("3############################");
///
Date date2 = new Date();
String strd = "yyyy年MM月dd日 HH时mm分ss秒";
SimpleDateFormat sdf = new SimpleDateFormat(strd);
System.out.println(sdf.format(date2));// 2020年06月08日 11时10分46秒
/*
* String str = "2020-6-8"; //String 转化Date DateFormat df = new
* SimpleDateFormat("yyyy-MM-dd"); Date date = df.parse(strd); Calendar
* c = new GregorianCalendar(); c.setTime(date);
*/
// Date 转化String
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf1.format(new Date());
Calendar n = Calendar.getInstance();
System.out.println(n);
/*
* java.util.GregorianCalendar[time=1591585846580,areFieldsSet=true,
* areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=
* "Asia/Shanghai",
* offset=28800000,dstSavings=0,useDaylight=false,transitions=29,
* lastRule=null],
* firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=5,
* WEEK_OF_YEAR=24,
* WEEK_OF_MONTH=2,DAY_OF_MONTH=8,DAY_OF_YEAR=160,DAY_OF_WEEK=2,
* DAY_OF_WEEK_IN_MONTH=2,
* AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=10,SECOND=46,MILLISECOND=580,
* ZONE_OFFSET=28800000,DST_OFFSET=0]
*/
System.out.println("3############################");
Instant instant = Instant.now();// 它代表的是时间戳
System.out.println(instant);// 2020-06-08T03:10:46.581Z
LocalDate nw = LocalDate.now();// 不包含具体时间的日期
System.out.println(nw);// 2020-06-08
LocalDateTime lo = LocalDateTime.now();
System.out.println(lo);// 2020-06-08T11:10:46.632
LocalTime lt = LocalTime.now();
System.out.println(lt);/// 11:10:46.632
/*
* //1.Calendar 转化 String Calendar calendat = Calendar.getInstance();
* SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")0; String
* dateStr = sdf.format(calendar.getTime());
*
* //2.String 转化Calendar String str="2020-5-27"; SimpleDateFormat sdf=
* new SimpleDateFormat("yyyy-MM-dd"); Date date =sdf.parse(str);
* Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
*/
// 1.Calenda转换为Date
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println("3############################");
// 2.Date 转化为Calendar
Calendar c = new GregorianCalendar();
c.setTime(new Date());
System.out.println(c.get(Calendar.DAY_OF_WEEK));
/*6.8获得2,表示SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, and SATURDAY.
中的星期一国外第二天,在下面for循环中,只需要在星期一前面添加一个制表符即可,从0开始循环,0添加一个即可终止
,所以获得的天数减一即 c.get(Calendar.DAY_OF_WEEK) - 1
2
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
*/
System.out.println("日\t一\t二\t三\t四\t五\t六");
c.set(Calendar.DAY_OF_MONTH, 1);//将当前日期置为1
for (int i = 0; i < c.get(Calendar.DAY_OF_WEEK) - 1; i++) {
//假如当前1是周四,则前面需要添加四个制表符,周四是第五个
System.out.print("\t");
}
int days = c.getActualMaximum(Calendar.DATE);
//获得当月日期最大值
for (int i = 1; i <= days; i++) {
System.out.print(c.get(Calendar.DAY_OF_MONTH) + "\t");
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println(); // 如果是周六就换行
}
c.add(Calendar.DAY_OF_MONTH, 1);//每打印一个加一天
/* //把c对象的日期加上10,也就是c1所表的日期的1天后的日期,其它所有的数值会被重新计算
c.add(Calendar.DAY_OF_MONTH, 1);
//把c对象的日期加上-1,也就是c所表的日期的1天前的日期,其它所有的数值会被重新计算
c.add(Calendar.DAY_OF_MONTH, -1);*/
//日期的计算,表示100年前
/*Calendar c3 = new GregorianCalendar();
c3.add(Calendar.YEAR, -100);//100年前
System.out.println(c3) ;*/
}
}
}
/*
* Calendar.YEAR——年份
* Calendar.MONTH——月份
* Calendar.DATE——日期
* Calendar.DAY_OF_MONTH——日期,和上面的字段意义相同
* Calendar.HOUR——12小时制的小时
* Calendar.HOUR_OF_DAY——24小时制的小时
* Calendar.MINUTE——分钟
* Calendar.SECOND——秒
* Calendar.DAY_OF_WEEK——星期几
*/