最近需要处理微秒时间格式,在网上搜索发现资料不是太多,分享一个供大家学习讨论。
jdk版本1.8
/**
* @describe:
* @param time long类型的时间格式
* @param unit time的时间类型 milli-毫秒,micro-微秒,nano-纳秒
* @param format 返回的时间格式 如 yyyy-MM-dd HH:mm:ss.SSSSSS
* @return: java.lang.String
* @author: jsuper
**/
public static String toDateTimeString(Long time, TimeUnit unit, String format) {
Long nanos = 0L;
Long convertTime=null;
if (unit.equals(TimeUnit.NANOSECONDS)) {
nanos = time % 1000_000_000;
convertTime=time/1000_000;
} else if (unit.equals(TimeUnit.MICROSECONDS)) {
nanos = time % 1000_000*1000;
convertTime = time/1000;
} else if (unit.equals(TimeUnit.MILLISECONDS)) {
nanos = time % 1000*1000_000;
convertTime=time;
}
Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(convertTime);
LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)+1, calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND), nanos.intValue());
return localDateTime.format(DateTimeFormatter.ofPattern(format));
}