java.lang.System类
System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
此方法适于计算时间差。
java.util.Date类
Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间。
Date(long date)
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是时间标准。
日期格式化
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化(日期文本)、解析(文本日期)
格式化:
SimpleDateFormat() :默认的模式和语言环境创建对象
public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用
public String format(Date date):方法格式化时间对象date
解析:
- public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。
日期类实例
package com.data;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DataTest {
public static void main(String[] args) throws ParseException {
long begin = System.currentTimeMillis(); // currenttimemillisecond从某个时间到现在所经历的毫秒数
System.out.println("现在:" + begin+"\n");
for (int i = 0; i < 100000000; i++) {
}
// Data类
Date date = new Date();
System.out.println("当前时间: " + date+"\n");
// 将毫秒数转为现在时间:用毫秒差初始化Date对象
Date thatDate = new Date(begin); //如果使用长整型数据,注意数据后面的L
System.out.println("毫秒转日期类:" + thatDate+"\n");
/**
* 格式转换器
* pattern:yyyy-MM-dd HH:mm:ss SSS (表示年、月、日、时、分、秒、毫秒)
* DateFormate是抽象类不能实例化,需要通过继承类来间接实例化
*/
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String strDate = df.format(thatDate);
System.out.println("使用格式转换器:" + strDate+"\n");
//解析(需要对应的模板)
Date fDate = df.parse(strDate);
System.out.println("解析:" + fDate.getTime()+"\n");
System.out.println("程序运行时间:" + (System.currentTimeMillis() - begin));
}
}
运行结果