스레드 보안 DateTimeFormatter 스레드가 안전하지 않은 SimpleDateFormat 교체
SimpleDateFormat를 두 가지 방법으로 교체할 수 있습니다.
방법 1: DateUtils 도구 클래스를 사용하는 방법
설명: SimpleDateFormat는 현재 스레드에서만 공유할 수 있도록 제한하여 다중 스레드로 인한 스레드 안전 문제를 피할 수 있습니다.
private static final ThreadLocal df = new ThreadLocal() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd");
}
};
//
public static String format(Date date) {
return threadLocal.get().format(date);
}
//
public static String parse(String str){
return threadLocal.get.parse(str);
}
방법2: JDK8의 새로운 기능을 사용한 DateTimeFormatter
설명: DateTimeFormatter는 안전한 스레드입니다.java에서.시간 중
public static void main(String[] args) {
//DateTimeFormatter
// --- DateTimeFormatter ,
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy MM dd hh:mm:ss");
LocalDateTime now = LocalDateTime.now();
String format1 = now.format(format);
System.out.println(format1);
// DateTimeFormatter ISO_DATE 2018-11-12 / ISO_LOCAL_TIME 14:03:24.266 / ISO_LOCAL_DATE_TIME 2018-11-12T14:03:54.363 / BASIC_ISO_DATE 20181112
DateTimeFormatter isoDate = DateTimeFormatter.BASIC_ISO_DATE;
LocalDateTime now2 = LocalDateTime.now();
String format2 = now.format(isoDate);
System.out.println(format2);
//
LocalDateTime now3 = LocalDateTime.now();
DateTimeFormatter format3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //HH24 ,hh12
String str = "2014-04-12 01:06:09";
// LocalDate ,
LocalDate parse = LocalDate.parse(str, format3);
System.out.println(parse+" parse");
//LocalDateTime , , localdatetime , 24 , hh,
LocalDateTime parse1 = LocalDateTime.parse(str, format3);
System.out.println(parse1+" parse1");
// , LocalDateTime
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate ld = LocalDate.parse("20180306", dtf);
// ,localTime localDate
LocalDateTime ldt = LocalDateTime.of(ld, LocalTime.of(12,12,12));
System.out.println(ldt+" ldt");
//instant
I Instant now = Instant.now();
String format = DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss").format(now);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.