日期工具类Date、SimpleDateFormat、用SimpleDateFormat中的方法让Date与String相互转换、Calendar类(日历类)的用法
Date
所在包: java.util
public class Date extends Object
implements Serializable,Cloneable,Comparable<Date>
常用方法:
方法实例 | 作用 |
---|---|
Date d = New Date(); | //返回当前时间 星期–月份–日—时:分:秒 CST 年份 |
Date d1=New Date(long a); | //分配一个Date对象,并将其初始化为表示从标准基准时间起的指定毫秒数 |
d.getTime(); | //获取当前时间和标准基准时间差的毫秒值 |
d.setTime(long data); | //和Date的有参构造函数功能相同 分配一个Date对象,并将其初始化为表示从标准基准时间起的指定毫秒数 |
例子:
Long n = System.currentTimeBillis();
Date d0=New Date(n);
System.out.println(d0);//输出结果与Date date = New Date(); 一致
//输出结果:
当前时间
SimpleDateFormat(日期时间类)
所在包:java.text
java.lang.Object
java.text.Format
java.text.DateFormat
java.text.SimpleDateFormat
public class SimpleDateFormat extends DateFormat
构造方法:
方法名 | 作用 |
---|---|
public SimpleDataFormat(); | //构造一个SimpleDateFormat,使用默认模式和日期格式 |
public SimpleDateFormat(String pattern); | //构造一个SimpleDateFormat使用给定的模式和默认的日期格式 |
常用方法例子:
Date -> String
public final String format(Date date); //将日期格式化成日期、时间字符串 相当于格式化为字符串
格式化操作:
Date d=new Date(); //获取当前时间的毫秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");//定义时间输出的格式
String s=sdf.format(d);
System.out.println(s);
//输出结果
yyyy年MM月dd日 hh:mm:ss //输出结果就是当前时间
---------------------------------------------------------------------------------
String -> Date
public Date parse(String source); //相当于解析(parse)为Date格式
解析操作:
//注意:String要想解析为Date 格式必须和SimpleDateFormat(String pattern)中的格式保持一样
String ss="2021-10-12 17:47";
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date d1=sdf1.parse(ss); //此处会有一个名为ParseException的异常 抛出即可
System.out.println(d1);
//输出结果
ss定义的时间
Calendar
所在包:java.util
java.lang.Object
java.util.Calendar
public abstract class Calendar
extends Object
implements Serializable,Cloneable,Comparable<Calendar>
构造方法:
修饰符 | 方法名 |
---|---|
Protected | Calendar() |
Protected | Calendar(TimeZone zone,Locale aLocale) |
常用方法例:
Calendar c=Calendar.getInstance(); //获取对象实例
int year=c.get(Calendar.YEAR);//get方法返回int类型
int month=c.get(Calendar.MONTH)+1; //系统默认从0开始 +1则为正常月份
int day=c.get(Calendar.DATE); //返回当月的当天
//int day=c.get(Calendar.DAY_OF_MONTH); //返回当月的当天
//get方法,将指定的时间量添加或减去给定的日历字段
c.add(Calendar.YEAR,10);
C.add(Calendar.DATE,-5); //表示十年后的五天前
//set方法,设置当前日历的年月日 public final void set(int year,int month,int date);
c.set(2088,11,30);
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+" "+month+" "+day);
//输出结果
set中定义的时间