cn.hutool hutool-all5.7.16
引入架包
package com.timestamp.test;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
@Slf4j
public class Test {
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final long TICKS_AT_EPOCH_NT = 116444736000000000L;
private static final long TICKS_PER_MILLISECOND = 10000;
private static TimeZone TIME_ZONE = TimeZone.getDefault();
private static final long TICKS_AT_EPOCH = 621355968000000000L;
public static String fromNTTimeToJdate(String str) {
String zero = "0";
if (StrUtil.isEmpty(str)) {
return null;
} else if (zero.equals(str)) {
return zero;
} else {
Calendar calendar = Calendar.getInstance(TIME_ZONE);
calendar.setTimeInMillis((Long.parseLong(str) - TICKS_AT_EPOCH_NT) / TICKS_PER_MILLISECOND);
calendar.setTimeInMillis(calendar.getTimeInMillis() - calendar.getTimeZone().getRawOffset());
return (new SimpleDateFormat(DATE_FORMAT)).format(calendar.getTime());
}
}
public static String fromDnetToJdate(String str) {
String zero = "0";
if (StrUtil.isEmpty(str)) {
return null;
} else if (zero.equals(str)) {
return zero;
} else {
Calendar calendar = Calendar.getInstance(TIME_ZONE);
calendar.setTimeInMillis((Long.parseLong(str)-TICKS_AT_EPOCH)/TICKS_PER_MILLISECOND);
calendar.setTimeInMillis(calendar.getTimeInMillis()-calendar.getTimeZone().getRawOffset());
return (new SimpleDateFormat(DATE_FORMAT)).format(calendar.getTime());
}
}
public static void main(String[] args) {
String ntStr = "131974608035554296";
log.info("NT时间戳:" + fromNTTimeToJdate(ntStr));
String dntStr = "635210495600000000";
log.info(".net18位时间戳转换:" + fromDnetToJdate(dntStr));
}
}
13位时间戳
String s="1565499360620";
Long timeStamp = Long.valueOf(s); //获取当前时间戳
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp)))); // 时间戳转换成时间
System.out.println("格式化结果:" + sd);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");
String sd2 = sdf2.format(new Date(Long.parseLong(String.valueOf(timeStamp))));
System.out.println("格式化结果:" + sd2);
原文链接:https://blog.csdn.net/qq_37552993/article/details/88683056



