转:https://www.runoob.com/java/java-examples.html
Java实例——Java时间处理
日期和时间模式(注意大小写,代表的含义是不同的):
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)
K:和hh差不多,表示一天12小时制(0-11)
z:表示时区
1、格式化时间(SimpleDateFormat)
//格式化时间——SimpleDateFormat
Date date1 =new Date();//默认当前时间
String strFormat ="yyyy-HH-dd HH:mm:ss";
SimpleDateFormat sdf =new SimpleDateFormat(strFormat);//时间格式化
Date date2 =sdf.parse("2018-06-07 12:12:06");//字符串转换日期
System.out.println("当前时间:"+sdf.format(date1));
System.out.println("设置的时间:"+sdf.format(date2));
执行结果:
当前时间:2019-10-13 10:22:02
设置的时间:2018-12-07 12:12:06
2、获取当前时间——new Date()
3、获取年份、月份等——Calendar抽象类
//获取年份、月份等——Calendar抽象类
Calendar c =Calendar.getInstance();//默认当前时间
c.set(2019, 6 -1, 12);//设置当前年月日为:2019、6、12
c.set(Calendar.DATE, 10);//日期设置为10号
c.add(Calendar.DATE, 10);//10天后的日期
Integer day =c.get(Calendar.DATE);//日期
Integer month =c.get(Calendar.MONTH)+1;//月份
Integer year =c.get(Calendar.YEAR);//年份
Integer dow =c.get(Calendar.DAY_OF_WEEK);
Integer dom =c.get(Calendar.DAY_OF_MONTH);
Integer doy =c.get(Calendar.DAY_OF_YEAR);
Integer hour =c.get(Calendar.HOUR);//12小时制的小时
//使用set,add关键字修改时间
System.out.println("当期时间:"+c.getTime());
System.out.println("日期: "+day);
System.out.println("月份: "+month);
System.out.println("年份:"+year);
System.out.println("一周的第几天:"+dow);
System.out.println("一月中的第几天:"+dom);
System.out.println("一年的第几天:"+doy);
System.out.println("当前的12制小时:"+hour);
执行结果:
当期时间:Thu Jun 20 10:26:33 CST 2019
日期: 20
月份: 6
年份:2019
一周的第几天:5
一月中的第几天:20
一年的第几天:171
当前的12制小时:10
4、时间戳转换成时间
使用 SimpleDateFormat 类的 format() 方法将时间戳转换成时间。
//时间戳转换成时间
Long timestap =System.currentTimeMillis();//获取当前时间戳
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化时间
String sd =sdf.format(new Date(Long.parseLong(String.valueOf(timestap))));//时间戳转换成时间
System.out.println("格式化结果:"+sd);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");//格式化时间
String sd2 =sdf2.format(new Date(Long.parseLong(String.valueOf(timestap))));//时间戳转换成时间
System.out.println("格式化结果:"+sd2);
执行结果:
格式化结果:2019-08-13 10:28:13
格式化结果:2019 年 08 月 13 日 10 时 28 分 13 秒