IT Share you

유닉스 타임 스탬프를 자바에서 날짜로 변환

shareyou 2020. 12. 9. 21:58
반응형

유닉스 타임 스탬프를 자바에서 날짜로 변환


이 질문에 이미 답변이 있습니다.

유닉스 타임 스탬프에서 Java의 날짜 및 시간으로 분을 변환하는 방법은 무엇입니까? 예를 들어 타임 스탬프는에 1372339860해당합니다 Thu, 27 Jun 2013 13:31:00 GMT.

나는 변환 할 13723398602013-06-27 13:31:00 GMT.

편집 : 사실 나는 미국 타이밍 GMT-4에 따르기를 원하므로 2013-06-27 09:31:00.


SimlpeDateFormat을 사용하여 다음과 같이 날짜 형식을 지정할 수 있습니다.

long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new java.util.Date(unixSeconds*1000L); 
// the format of your date
SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); 
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4")); 
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

SimpleDateFormat매우 유연하다면 사용 하는 패턴 은 javadocs에서 특정 .NET Framework에서 작성한 패턴을 기반으로 다른 형식을 생성하는 데 사용할 수있는 모든 변형을 확인할 수 있습니다 Date. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

  • a DategetTime()EPOC 이후 밀리 초를 반환 하는 방법을 제공 하기 때문에 SimpleDateFormat시간대에 따라 날짜를 적절하게 형식화하기 위해 시간대에 제공해야합니다. 그렇지 않으면 JVM의 기본 시간대를 사용합니다 (잘 구성된 경우 항상 올바른 것입니다. )

Java 8 은 Unix 타임 스탬프에서 Instant.ofEpochSecond를 만드는 유틸리티 메서드를 도입했습니다. Instant그런 다음이를로 변환 ZonedDateTime하고 마지막으로 형식화 할 수 있습니다 . 예 :

final DateTimeFormatter formatter = 
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

final long unixTime = 1372339860;
final String formattedDtm = Instant.ofEpochSecond(unixTime)
        .atZone(ZoneId.of("GMT-4"))
        .format(formatter);

System.out.println(formattedDtm);   // => '2013-06-27 09:31:00'

Java 8을 사용하는 사람들에게 유용 할 것이라고 생각했습니다.


타임 스탬프에 1000을 곱하여 밀리 초로 변환해야합니다.

java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);

참고 URL : https://stackoverflow.com/questions/17432735/convert-unix-time-stamp-to-date-in-java

반응형