Java基础笔记21-日期格式
1.Date类
-
使用Date类获取当前时间及比较时间的先后
-
导入路径
-
import java.util.Date;
-
-
示例:
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
//创建一个Date类对象用于调用方法及操作
Date date = new Date();
//直接输出得到的是 获取系统当前时间组成的字符串 格式:Tue Nov 17 16:17:23 CST 2020
System.out.println(date);
//getTime() 获取时间毫秒值 1605601392239
System.out.println(""+date.getTime());
//时间的比较
Date oldDate = new Date(1605601392239L);
System.out.println(oldDate);//Tue Nov 17 16:23:12 CST 2020
//当前时间是否在指定时间之后
System.out.println(date.after(oldDate));//true
//当前时间是否在指定时间之前
System.out.println(date.before(oldDate));//false
//compareTo()现在时间在指定时间之前为-1,等于指定时间为0,在指定时间之后为1
System.out.println(date.compareTo(oldDate));//1
}
}
2.Calendar类
-
Calendar类用于获取单独的年、月、日、时、分、秒
-
导入路径
-
import java.util.Calendar;
-
-
示例:
-
import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //使用getInstance()创建一个实例对象, Calendar cal = Calendar.getInstance(); //获取单独的时间值 int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH)+1;//月份默认从零开始,按中国的习惯需加1 int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); int milliSeconds = cal.get(Calendar.MILLISECOND); //将时间值拼接为字符串 String time = year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒"+milliSeconds+"毫秒"; System.out.println(year); System.out.println(month); System.out.println(day); System.out.println(hour); System.out.println(minute); System.out.println(second); System.out.println(milliSeconds); System.out.println(time); } }
-
输出:
-
2020 11 17 17 25 4 434 2020年11月17日17时25分4秒434毫秒
3.DateFormat类
-
DateFormat提供了许多类方法,用于根据默认或给定的区域设置和多个格式化样式获取默认的日期/时间格式化程序。
-
格式化风格包括FULL 、LONG 、MEDIUM 、SHORT。
-
导入路径
-
import java.text.DateFormat;
-
-
format()格式化一个对象来生成一个字符串
代码示例:
import java.text.DateFormat;
import java.util.Date;
public class DateFormatDemo {
public static void main(String[] args) {
//创建一个DateFormat对象,输出年月日时间
//DateFormat df = DateFormat.getDateInstance();//2020年11月17日
//DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);//2020/11/17
//DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);//2020年11月17日
//DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);//2020年11月17日
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);//2020年11月17日星期二
System.out.println(df);//java.text.SimpleDateFormat@6bfa08c
String date = df.format(new Date());//format()格式化一个对象来生成一个字符串
System.out.println(date);
//创建一个DateFormat对象,输出时分秒时间
//DateFormat dfT = DateFormat.getTimeInstance();//下午6:58:09
//DateFormat dfT = DateFormat.getTimeInstance(DateFormat.SHORT);//下午6:58
//DateFormat dfT = DateFormat.getTimeInstance(DateFormat.MEDIUM);//下午6:59:11
//DateFormat dfT = DateFormat.getTimeInstance(DateFormat.LONG);//CST 下午6:59:42
DateFormat dfT = DateFormat.getTimeInstance(DateFormat.FULL);//中国标准时间 下午7:00:09
String time = dfT.format(new Date());
System.out.println(time);
//创建一个DateFormat对象,输出年月日时分秒时间
//DateFormat dfDT = DateFormat.getDateTimeInstance();//2020年11月17日 下午7:04:23
//DateFormat dfDT = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);//2020/11/17 下午7:05
//DateFormat dfDT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//2020年11月17日 下午7:06:15
//DateFormat dfDT = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//2020年11月17日 CST 下午7:06:43
DateFormat dfDT = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);//2020年11月17日星期二 中国标准时间 下午7:07:00
String dateTime = dfDT.format(new Date());
System.out.println(dateTime);
}
}
4.SimpleDateFormat类
-
使用这个类可以自定义日期格式输出
-
需要注意的是字母对应的意义,以下几个是最常用的格式字符,根据对应字母的数量来显示数字位数,个数不够会自动增加,正常来说年份是四个y,其他都两个比较常用。
- y年份
- M月份
- d在月份中的第几天
- H(显示按24小时制的小时数0-23) h (显示按12小时制的时间1-12)
- m在小时中的第几分钟
- s在分钟的第几秒
-
示例:
-
import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo { public static void main(String[] args) { //创建一种日期格式 String myFormat1 = "yy-MM-dd HH:mm:ss"; //使用SimpleDateFormat转化自己创建的格式 SimpleDateFormat sdf1 = new SimpleDateFormat(myFormat1); //使用新格式对当前时间进行格式化 String dateTime1 = sdf1.format(new Date()); System.out.println(dateTime1);//20-11-17 19:28:16 String myFormat2 = "yyyy/MM/dd hh:mm:ss"; SimpleDateFormat sdf2 = new SimpleDateFormat(myFormat2); String dateTime2 = sdf2.format(new Date()); System.out.println(dateTime2);//20/11/17 2020/11/17 08:15:00 String myFormat3 = "yyyy年MM月dd日 HH时mm分ss秒 "; SimpleDateFormat sdf3 = new SimpleDateFormat(myFormat3); String dateTime3 = sdf3.format(new Date()); System.out.println(dateTime3);//2020年11月17日 20时12分19秒 } }