1、Java获取当前时间戳的方法
/**
* Java获取时间戳三种方法执行效率比较
* 推荐使用System.currentTimeMillis()
*/
import java.util.Calendar;
import java.util.Date;
public class p2 {
private static long _TEN_THOUSAND=10000;
public static void main(String[] args) {
long times=1000*_TEN_THOUSAND;
long t1=System.currentTimeMillis();
testSystem(times);
long t2=System.currentTimeMillis();
//耗时 47
System.out.println(t2-t1);
testCalander(times);
long t3=System.currentTimeMillis();
//耗时 2024
System.out.println(t3-t2);
testDate(times);
long t4=System.currentTimeMillis();
//耗时 44
System.out.println(t4-t3);
}
public static void testSystem(long times){
for(int i=0;i<times;i++){
long currentTime=System.currentTimeMillis();
}
}
public static void testCalander(long times){
for(int i=0;i<times;i++){
long currentTime= Calendar.getInstance().getTimeInMillis();
}
}
public static void testDate(long times){
for(int i=0;i<times;i++){
long currentTime = new Date().getTime();
}
}
}
2、Java中Unix时间戳与日期的相互转换
public static void unixTimeToDate() throws ParseException {
//生成DateFormat类对象的固定格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获取当前时间
String nowTime = df.format(new Date());
System.out.println(nowTime);
//获取日期转换为Unix时间戳
long epoch = df.parse(nowTime).getTime();
System.out.println(epoch);
//根据Unix时间戳得到时间
Date d = new Date(epoch);
System.out.println(d);
//转换为日期
String t = df.format(d);
System.out.println(t);
}
运行结果:
2023-05-13 16:26:36
1683966396000
Sat May 13 16:26:36 CST 2023
2023-05-13 16:26:36