System.currentTimeMillis() "UTC 1970 년 1 월 1 일 현재 시간과 자정 사이의 밀리 초 단위로 측정 한 차이"를 반환합니다. (GMT).
"날짜"가 1317322560000이므로 29/09/2011 : 18 : 56 : 00 GMT입니다. 이탈리아의 경우 9 월 29 일에 GMT로부터의 오프셋은 +2 시간입니다 ("여름철"또는 기술적으로 DST = Daylight Saving Time으로 인해). 30/10/2011 : 03 : 00 : 00 (다음 주 일요일)부터 이탈리아에서는 겨울철 (DST 없음)이므로 오프셋은 +1이됩니다.
따라서 2011 년 9 월 29 일 20:56:00 CEST 2011 (18:56:00 + 이탈리아 시간대에서 2 시간 오프셋)이 올바르게 표시됩니다. 이 모든 것을 보여주는 코드 (Groovy)를 확인하십시오.
import java.text.DateFormat
import java.util.TimeZone
println Locale.getDefault()
Date d = new Date(1317322560000)
println d
Locale.setDefault(new Locale("it", "IT"))
println Locale.getDefault()
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
println df.getTimeZone().getOffset(1317322560000) + " => +2h offset in 'summer time' (DST on)"
df.setTimeZone(TimeZone.getTimeZone("GMT+00:00"))
println df.format(d)
df.setTimeZone(TimeZone.getTimeZone("GMT+01:00"))
println df.format(d)
df.setTimeZone(TimeZone.getTimeZone("GMT+02:00"))
println df.format(d)
df.setTimeZone(TimeZone.getTimeZone("Europe/Rome"))
println df.format(d)
println "---"
Date winterDate = new Date(1321382560000)
println winterDate
println df.getTimeZone().getOffset(1321382560000) + " => +1h offset in 'winter time' (DST off)"
이 결과 :
es_ES
Thu Sep 29 20:56:00 CEST 2011
it_IT
7200000 => +2h offset in 'summer time' (DST on)
giovedì 29 settembre 2011 18.56.00 GMT+00:00
giovedì 29 settembre 2011 19.56.00 GMT+01:00
giovedì 29 settembre 2011 20.56.00 GMT+02:00
giovedì 29 settembre 2011 20.56.00 CEST
---
Tue Nov 15 19:42:40 CET 2011
3600000 => +1h offset in 'winter time' (DST off)
어디 디 당신이 목 9월 29일 그리니치 표준시 18시 56분 0초 + 02 수 :에서 00? – kgautron
From System.currentTimeMillis() –
답변을 수락하십시오. 대답이 맞으면 받아 들일 수 있습니다. –