如何在Java中以YYYY-MM-DD HH:MI:秒毫秒格式获取当前时间?| Java Debug 笔记

149 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

如何在Java中以YYYY-MM-DD HH:MI:秒毫秒格式获取当前时间?

下面的代码为我提供了当前时间。但这并不能说明毫秒。

public static String getCurrentTimeStamp() {
    SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
    Date now = new Date();
    String strDate = sdfDate.format(now);
    return strDate;
}

我有一个日期YYYY-MM-DD HH:MM:SS(2009-09-22 16:47:08)格式的日期。

但是我想以YYYY-MM-DD HH:MM:SS.MS(2009-09-22 16:47:08.128,其中128的毫秒数)格式检索当前时间。

SimpleTextFormat会很好的工作。在这里,最小的时间单位是秒,但是如何获得毫秒呢?

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

高分回答:

Java一线

public String getCurrentTimeStamp() {
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());
}

以JDK8风格

public String getCurrentLocalDateTimeStamp() {
    return LocalDateTime.now()
       .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
}

文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/1…

作者建议:请注意在高并发的场景中SimpleDateFormat不是一个线程安全的,它被static修饰,会出现多个线程争抢的情况,我们可以使用ThreadLocal来解决,当前线程持有一个对象,也可以通过DateTimeFormatter这个是线程安全的,具体参考:Java字符串到日期的转换?

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️