package com.yl.demo; import java.sql.Timestamp; import java.text.SimpleDateFormat; public enum HighPrecisionSixBitTimestamp { INSTANCE ; private long startTimeMillis ; private long startNanoTime ; private SimpleDateFormat dateFormat ; private HighPrecisionSixBitTimestamp() { this.startTimeMillis = System.currentTimeMillis() ; this.startNanoTime = System.nanoTime() ; this.dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ; } public String get() { long microSeconds = (System.nanoTime() - this.startNanoTime) / 1000 ; long date = this.startTimeMillis + (microSeconds/1000) ; return this.dateFormat.format(date) + String.format("%03d", microSeconds % 1000) ; } public static void main(String[] args) { String timestampstr= HighPrecisionSixBitTimestamp.INSTANCE.get(); System.out.println(timestampstr); //2022-10-22 22:51:29.429827 System.out.println(Timestamp.valueOf(timestampstr)); //2022-10-22 22:54:42.669026 } }
06-14
7258
