표시를 위해 java.sql 타임 스탬프를 포맷하는 방법은 무엇입니까?


103

원하는대로 java.sql 타임 스탬프를 형식화하려면 어떻게해야합니까? (표시 목적을 위해 문자열로)

답변:


160

java.sql.Timestamp확장 java.util.Date합니다. 넌 할 수있어:

String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);

또는 시간 포함 :

String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);

3
작동하지만 SimpleDateFormat은 스레드로부터 안전하지 않기 때문에주의하십시오.
Brian Agnew

17
SimpleDateFormat 객체가 로컬 범위 객체 (메서드 내에서만 생성 및 사용됨) 인 경우 해당 객체가 상주 할 스택은 본질적으로 "스레드 안전"(그대로 단일 스레드에 속함).
quantum

5
또는 이와 유사한 : 시간을 포함하려면하여 SimpleDateFormat ( "mm MM / DD / YYYY hh가")을 사용해야합니다
AverageMarcus

1
필요한 사람들을 위해 완벽하게 만들기 위해 String S = new SimpleDateFormat ( "MM / dd / yyyy HH : mm : ss"). format (myTimestamp);
Ishan Liyanage

27

String.format (또는 java.util.Formatter ) 사용 :

Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)

편집 :
TD 및 TT의 의미를 알아 보려면 Formatter 설명서를 참조하십시오. java.util.Formatter를 클릭하십시오.

첫 번째 'T'는 다음을 의미합니다.

't', 'T'    date/time   Prefix for date and time conversion characters.

그리고 그 'T'뒤에 오는 문자 :

'T'     Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D'     Date formatted as "%tm/%td/%ty". 

1
나에 따르면 이것이 가장 좋은 대답입니다. 타임 스탬프를 문자열로 변환하기위한 불필요한 개체는 생성되지 않습니다.
Salil 2013 년

1
이제 문서를 찾을 수있는 위치와 의미가 명확해야합니다.
user85421

매우 우아합니다. 명확하게하기 위해 여기 예제에서 생성 된 서식은 다음과 같습니다 05/30/17 00:39:18.
Noumenon 2017 년

@Noumenon 감사합니다. 질문이 요구 한대로 "내 취향대로"형식이었습니다. [:-)
user85421

10

이 특정 질문의 경우 작업의 표준 제안 java.text.SimpleDateFormat이지만 SimpleDateFormat 스레드로부터 안전하지 않은 불행한 부작용 있으며 다중 스레드 시나리오에서 출력을 손상시킬 수 있으므로 특히 불쾌한 문제의 원인이 될 수 있습니다. 예외를 얻으십시오!

나는 것 강하게 보고 추천 Joda 이 같은 아무것도. 왜 ? 현재 라이브러리보다 훨씬 더 풍부하고 직관적 인 Java 용 시간 / 날짜 라이브러리입니다 (그리고 곧 출시 될 새로운 표준 Java 날짜 / 시간 라이브러리의 기반이므로 곧 표준이 될 것입니다. API).


8
좋은 경고입니다. 그러나 해결하기는 매우 쉽습니다. SimpleDateFormat 인스턴스를 세션 범위 / 인스턴스 변수 / 정적 컨텍스트에 저장 한 다음 여러 스레드에서 액세스하여 공유하지 마십시오. 메서드 내에서 새 SimpleDateFormat ()을 만들고 사용 후 버립니다. 그것은 스레드 세이프입니다.
글렌 최고의

물론 SimpleDateFormat 인스턴스를 실제로 저장 / 공유하려면 액세스를 동기화하십시오 .synchronous (simpleDateFormatInstance) {s = simpleDateFormatInstance.format (myTimeStamp)} 또는 SDF 클래스의 사용자 지정 확장을 생성하고 format 메서드 내에서 자동으로 수행합니다.
Glen Best



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.