文章目录
java.lang.System类
System类提供的public static long currentTimeMillis()
用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差(时间戳)。(此方法适于计算时间差)
long time = System.currentTimeMillis();
System.out.println(time);
java.util.Date类
构造器:
①Date()
:创建的对象可以获取本地当前时间
②Date(long date)
:创建指定毫秒数的Date对象,相当于又将时间戳转换成String形式
常用方法
①getTime()
:返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
②toString()
:把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
import java.util.Date;
public class DataTest {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
System.out.println(date); //等同于toString()方法
System.out.println(date.getTime());
}
}
java.sql.Date类
是java.util.Date类的子类,对应着数据库中的日期类型的变量。
构造器:java.sql.Date(时间戳)
常用方法:同上
java.sql.Date与java.util.Date转换,可以通过多态和getTime()方法
import java.util.Date;
public class DataTest {
public static void main(String[] args) {
Date date = new Date();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate);
}
}
java.text.SimpleDateFormat类
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。其允许进行①格式化:日期—>字符串、②解析:字符串—>日期。
格式化:
1.实例化
①SimpleDateFormat() :默认的模式和语言环境创建对象
②SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象
2.格式化
实例化对象调用 String format(Date date)
方法格式化时间对象
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTest {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat(); //无参默认模式实例化
Date date = new Date();
String format = sdf.format(date); //格式化
System.out.println(format);
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTest {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //带参指定格式实例化
Date date = new Date();
String format = sdf.format(date); //格式化
System.out.println(format);
}
}
关于指定格式:
解析(格式化逆过程):
Date parse(String source)
:依据格式解析字符串,以生成一个日期(注意格式的匹配对应,否则抛异常)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //带参指定格式实例化
Date parse = sdf.parse("2020-12-20 22:03:19");
System.out.println(parse);
}
}
java.util.Calendar(日历)类
这是一个抽象(abstract)类,主用用于完成日期字段之间相互操作的功能。
实例化:
①使用Calendar.getInstance()
该静态方法
②调用它的子类GregorianCalendar的构造器
常用方法:
import java.util.Calendar;
import java.util.Date;
public class CalendarTest {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
//get():int get(int field)
int ofMouth = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(ofMouth);
int ofYear = instance.get(Calendar.DAY_OF_YEAR);
System.out.println(ofYear);
//set():void set(int field,int value)
instance.set(Calendar.DAY_OF_MONTH,9);
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
//add:void add(int field,int amount)
instance.add(Calendar.DAY_OF_MONTH,-2);
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
//getTime:final Date getTime() 将日历类型转换为Date类型
Date time = instance.getTime();
System.out.println(time);
//setTime:final void setTime(Date date) 将Date类型转换为日历类型
instance.setTime(new Date());
System.out.println("********" + instance.getTime());
}
}
一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND。
未完待续