826220679@qq.com
8 天以前 6d5ff381cafca9b82e11407dc67bf6b74f1397ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package publicsWay;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
 
public class EfficientTimeFormatter {
 
    // Ê¹ÓàThreadLocal À´´æ´¢Ã¿¸öÏ̵߳ĠDateTimeFormatter
    private static final ThreadLocal<DateTimeFormatter> formatterThreadLocal = ThreadLocal.withInitial(() -> {
        // Ê¹ÓàDateTimeFormatterBuilder ¹¹½¨Ò»¸ö¸ßЧµÄ¸ñʽ»¯Æ÷
        return new DateTimeFormatterBuilder()
                .appendValue(ChronoField.YEAR, 4)
                .appendLiteral('-')
                .appendValue(ChronoField.MONTH_OF_YEAR, 2)
                .appendLiteral('-')
                .appendValue(ChronoField.DAY_OF_MONTH, 2)
                .appendLiteral(' ')
                .appendValue(ChronoField.HOUR_OF_DAY, 2)
                .appendLiteral(':')
                .appendValue(ChronoField.MINUTE_OF_HOUR, 2)
                .appendLiteral(':')
                .appendValue(ChronoField.SECOND_OF_MINUTE, 2)
                .toFormatter();
    });
 
    // »ñÈ¡µ±Ç°Ê±¼äµÄ×Ö·û´®±íʾ
    public static String getCurrentTimeFormatted() {
        Instant now = Instant.now(); // »ñÈ¡µ±Ç°Ê±¼ä
        DateTimeFormatter formatter = formatterThreadLocal.get(); // »ñÈ¡µ±Ç°Ï̵߳ĸñʽ»¯Æ÷
        return formatter.format(now.atZone(ZoneId.systemDefault())); // ¸ñʽ»¯Ê±¼ä
    }
 
   
}