Java에서 문자열 형식의 현재 타임스탬프를 가져오려면 어떻게 해야 합니까?"yyy.MM.dd.HH.mm.ss."
Java에서 문자열 형식의 타임스탬프를 가져오려면 어떻게 해야 합니까?"yyy.MM.dd.HH.mm.ss."
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Timestamp());
이것이 제가 가지고 있는 것입니다만, Timestamp()에는 파라미터가 필요합니다.
교체하다
new Timestamp();
와 함께
new java.util.Date()
에는 디폴트 컨스트럭터가 없기 때문에, 또는 다음의 방법으로 실행할 수 있습니다.
new Timestamp(System.currentTimeMillis());
java.util.Date
타임스탬프 클래스
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date());
지정된 형식으로 현재 날짜가 표시됩니다.
dr;dr
최신 java.time 클래스만 사용합니다.다음과 같은 끔찍한 레거시 클래스는 사용하지 마십시오.SimpleDateFormat
,Date
, 「」java.sql.Timestamp
.
ZonedDateTime // Represent a moment as perceived in the wall-clock time used by the people of a particular region ( a time zone).
.now( // Capture the current moment.
ZoneId.of( "Africa/Tunis" ) // Specify the time zone using proper Continent/Region name. Never use 3-4 character pseudo-zones such as PDT, EST, IST.
) // Returns a `ZonedDateTime` object.
.format( // Generate a `String` object containing text representing the value of our date-time object.
DateTimeFormatter.ofPattern( "uuuu.MM.dd.HH.mm.ss" )
) // Returns a `String`.
또는 JVM의 현재 기본 시간대를 사용합니다.
ZonedDateTime
.now( ZoneId.systemDefault() )
.format( DateTimeFormatter.ofPattern( "uuuu.MM.dd.HH.mm.ss" ) )
java.time & JDBC 4.2
최신 접근법에서는 위와 같이 java.time 클래스를 사용합니다.
JDBC 드라이버가 JDBC 4.2에 준거한 경우 데이터베이스와 java.time 개체를 직접 교환할 수 있습니다.및 을 사용합니다.
java.sql은 JDBC 4.2 이전 드라이버에만 사용합니다.
JDBC 드라이버가 java.time type 지원에 대해 아직 JDBC 4.2에 준거하지 않은 경우 java.sql 클래스 사용을 폴백해야 합니다.
데이터 저장
OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ; // Capture the current moment in UTC.
myPreparedStatement.setObject( … , odt ) ;
데이터를 검색하는 중입니다.
OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;
등의 java.sql 유형은 데이터베이스 안팎의 전송에만 사용해야 합니다.Java 8 이후에서는 즉시 java.time 타입으로 변환합니다.
java.time.Instant
A java.sql.Timestamp
는 타임라인상의 시간(UTC)에 매핑됩니다.이전 클래스에 추가된 새로운 변환 메서드에 주목하십시오.
java.sql.Timestamp ts = myResultSet.getTimestamp( … );
Instant instant = ts.toInstant();
시간대
원하는/ZoneId
예상 시간대()를 적용하여를 가져옵니다.
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );
포맷된 문자열
를 사용하여 문자열을 생성합니다.패턴 코드는 의 패턴 코드와 비슷하지만 정확하게는 다르므로 문서를 주의 깊게 읽어보십시오.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "uuuu.MM.dd.HH.mm.ss" );
String output = zdt.format( formatter );
이 특정 형식은 UTC로부터의 오프셋이나 타임 존의 표시가 없기 때문에 정확한 의미에 대해서는 애매합니다.
ISO 8601
만약 당신이 이 문제에 대해 발언권이 있다면, 나는 당신이 자신의 ISO 8601 포맷을 굴리는 것보다 표준적인 ISO 8601 포맷을 사용하는 것을 고려할 것을 제안한다.표준 포맷은 당신의 것과 상당히 유사합니다.예를 들어 다음과 같습니다.2016-02-20T03:26:32+05:30
.
java 표준 java.time을 .ZonedDateTime
class는 표준 포맷을 확장하기 위해 시간대 이름을 추가합니다(현명한 개선).
String output = zdt.toString(); // Example: 2007-12-03T10:15:30+01:00[Europe/Paris]
Java로 변환합니다.sql
java.time에서 로 변환할 수 있습니다.java.sql.Timestamp
. 추출합니다.Instant
에서ZonedDateTime
.
java.time 클래스에서 쉽게 변환할 수 있도록 오래된 클래스에 새로운 메서드가 추가되었습니다.
java.sql.Timestamp ts = java.sql.Timestamp.from( zdt.toInstant() );
java.time 정보
java.time 프레임워크는 Java 8 이후에 포함되어 있습니다.이러한 클래스는 , 및 등 문제가 많은 오래된 레거시 날짜 시간 클래스를 대체합니다.
현재 유지보수 모드에 있는 조다 타임 프로젝트는 java.time 클래스로의 이행을 권장합니다.
자세한 내용은 Oracle 자습서를 참조하십시오.또한 Stack Overflow를 검색하여 많은 예와 설명을 확인하십시오.사양은 JSR 310입니다.
java.time 객체를 데이터베이스와 직접 교환할 수 있습니다.JDBC 4.2 이후에 준거한JDBC 드라이버를 사용합니다.스트링도 필요 없고java.sql.*
반.
java.time 클래스는 어디서 얻을 수 있습니까?
- 자바 SE 8, 자바 SE 9, 자바 SE 10, 자바 SE 11 및 이후 - 표준 Java API의 일부이며 번들 구현이 포함되어 있습니다.
- Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되어 있습니다.
- 자바 SE 6 및 자바 SE 7
- java.time 기능의 대부분은 ThreeTen 백포트의 Java 6 및7로 백포트됩니다.
- 안드로이드
- 최신 버전의 Android 번들 구현 java.time 클래스.
- 이전의 Android(<26)에서는 쓰리텐ABP 프로젝트가 ThreeTen-Backport(상기)를 채택하고 있습니다.'쓰리텐ABP 사용방법'을 참조하십시오.
쓰리텐 엑스트라 프로젝트는 java.time을 추가 클래스로 확장합니다.이 프로젝트는 향후 java.time에 추가될 수 있는 가능성을 입증하는 기반입니다.여기에는 , , , 등 유용한 클래스가 있습니다.
java.util을 사용할 수 있습니다.타임스탬프 대신 날짜:
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date());
최신 사용java.time
classes를 클릭합니다.
String s = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
Basil Bourque의 대답은 꽤 좋다.하지만 너무 길다.많은 사람들이 그것을 읽을 인내심이 없을 것이다.상위 3개의 답변은 너무 오래되어 Java new bee를 오도할 수 있습니다.그래서 저는 새로운 개발자들에게 짧고 현대적인 답변을 제공합니다.이 답변이 끔찍한 사용을 줄일 수 있기를 바랍니다.SimpleDateFormat
.
다음을 사용할 수 있습니다.
new java.sql.Timestamp(System.currentTimeMillis()).getTime()
결과:
1539594988651
보다 적절한 접근법은 로케일 영역을 컨스트럭터에서 파라미터로 지정하는 것입니다.다음 예에서는 US 로케일 지역을 사용하고 있습니다.날짜 형식은 로케일에 의존하며 로케일을 사용하여 사용자의 지역 로케일(Java Platform SE 7)의 관습 및 규약에 따라 정보를 맞춤화합니다.
String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss", Locale.US).format(new Date());
나는 이것을 사용하고 있다
String timeStamp = new SimpleDateFormat("dd/MM/yyyy_HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp);
언급URL : https://stackoverflow.com/questions/23068676/how-to-get-current-timestamp-in-string-format-in-java-yyyy-mm-dd-hh-mm-ss
'programing' 카테고리의 다른 글
Collection.stream().forEach()와 Collection.forEach()의 차이점은 무엇입니까? (0) | 2022.08.27 |
---|---|
vuex-sync의 용도는 무엇입니까? (0) | 2022.08.27 |
다시 Vue.nextTick을 Vuex 변환에 사용하는 것이 관례입니까?뭔가 부서질까? (0) | 2022.08.27 |
대규모 SPA에서 우수한 VueX 스토어 디자인을 사용하는 방법 (0) | 2022.08.27 |
vuejs 프로젝트를 heroku에 전개하는 방법 (0) | 2022.08.27 |