Java获取本地UTC时间戳最简单方式
以下提供一种最简单的实现方式
//获取UTC时间戳(毫秒级)
long utcTime = System.currentTimeMills();
大多数初学者使用过new Date() 的方式
Date date = new Date();
long utcTime = date.getTime();
其实内部实现方式还是调用System中的方法,查看源码可知:
pbulic Data() {
this(System.currentTimeMills());
}
所以建议,获取本地时间戳还是直接使用System中方法即可
当然java中还有其他函数去获取时间戳的方式,比如Calendar
Calendar cal = Calendar.getInstance();
//获取UTC时间戳(毫秒级)
long utcTime=cal.getTimeInMillis();
UTC时间格式化
public String utcFormat(Long utcTime) {
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return dft.format(utcTime);
}
该方法在并发场景中,可能会出现多线程问题
规避方法:
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
public String utcFormat(Long utcTime) {
synchronized (DATE_FORMAT) {
return dft.format(utcTime);
}
}