java相关的几个时间类
可以看出Date类是核心
/**
* Date和DateFormat格式转化
* > Date类的核心在于其内部的时间戳属性
* @throws ParseException
*/
public static void testTimeTransfer() throws ParseException {
// 获取当前时间戳
long timeStamp = System.currentTimeMillis();
// 获取当前时间
Date date2 = new Date();
// 打印初始信息
System.out.println("当前时间:" + date2);
System.out.println("当前时间戳:" + timeStamp);
// 时间戳转成String
// timeStamp:1522511450886
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// 指定格式
String timeString = simpleDateFormat.format(timeStamp);
System.out.println("TimeStamp ==> String:" + timeString);
// 时间戳转成Date
// timeStamp:1522511450886
Date date = new Date(timeStamp);
System.out.println("TimeStamp ==> Date:" + date);
// String转成时间戳
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
// timeString:"2018年04月10日 23时28分14秒";
Date date1 = simpleDateFormat.parse(timeString);
long timeStamp1 = date1.getTime();
System.out.println("String ==> TimeStamp:" + timeStamp1);
// Date转成时间戳
// date:Sat Mar 31 23:50:50 CST 2018
long timeStamp2 = date.getTime();
System.out.println("Date ==> TimeStamp:" + timeStamp2);
}
运行结果如下:
最后两项结果有出入是因为 java中的时间戳是精确到毫秒的,所以精确到秒的时间String转成时间戳时,会将毫秒置为0
/**
* Date和Calendar格式转化
*/
@Test
public void test2() throws Exception{
//Calendar转date
Calendar calendar = GregorianCalendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
//date转Calendar
Date date1 = new Date();
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
System.out.println(calendar1);
}