다른 답변은 이미 Calendar
와 SimpleDateFormat
와 솔루션을 제공합니다. 다른 접근법을 추가하고 싶습니다.
오래된 클래스 (Date
, Calendar
및 SimpleDateFormat
)는 lots of problems 및 design issues 있고, 그들은 새로운 API로 대체되고 있습니다.
안드로이드에서 (프로젝트에 의존성을 추가하는 것에 대해 괜찮 으면 -이 경우에는 IMO의 가치가 있습니다) ThreeTen Backport은 Java 8의 새로운 날짜/시간 클래스에 훌륭한 백 포트입니다. 작동 시키려면 ThreeTenABP (자세한 사용 방법은 here)이 필요합니다.
먼저 org.threeten.bp.Instant
을 사용하여 밀리 값을 해당 UTC 인스턴트로 변환 할 수 있습니다. 그런 다음 org.threeten.bp.format.DateTimeFormatter
을 사용하여 원하는 형식을 정의하십시오.
long dateLong = System.currentTimeMillis();
// convert long millis value to Instant
Instant instant = Instant.ofEpochMilli(dateLong);
// create formatter in UTC
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
.withZone(ZoneOffset.UTC);
// format it
System.out.println(fmt.format(instant));
출력 될 것 같은 뭔가 :
13/09/2017 11시 28분 2초
또한 포맷터는 UTC 날짜를 사용해야 함을 나타 내기 위해
org.threeten.bp.ZoneOffset
를 사용
질문을 올바르게 이해하려면 "GMT"또는 현지 시간으로 변경 하시겠습니까? – procrastinator
GMT의 @procrastinator. 로컬 시간대에 서버에서 가져 오지만 GMT에서이를 감지하고 다시 변환합니다. 따라서, GMT로 표시하면 (이미 변환 된 이후) 올바르게 표시해야합니다. –
그것은 작동합니다. 고마워, 답변으로 게시하십시오! –