2012-11-09 8 views
3

gpslocation 서비스에서 시간이 왔습니다. 1352437114052 형식입니다. 어떤 사람들은 이것을 Java 나 Matlab 또는 Excel에서 현지 시간으로 변환하는 방법을 알려줄 수 있습니까?UTC 시간을 Java로 현지 시간으로 변환하는 방법은 무엇입니까?

+0

은 현지 시간 사이의 오프셋 것을 찾기 : 여기 시스템의 로컬 시간에 대한보다 일반적인 솔루션은 Files.walkFileTree 동안 public FileVisitResult visitFile(Path f, BasicFileAttributes a)에서 Windows 디렉터리 항목에서보고 된 유형 BasicFileAttributes이다 a일광 절약 시간를 포함입니다 그리고 UTC는 밀리 세컨드이며 여기에있는 값에서 더하거나 뺍니다. 시간대가 1970 년이 시작된 이래로 밀리 초 단위로 현지 시간을 제공합니다. –

+0

비슷한 질문 [GPS 시간 표현 라이브러리] (http://stackoverflow.com/q/3038229/642706) 및 [GPS 시간 (밀리 초 단위) 형식] (http://stackoverflow.com/q/9599176/642706) . –

답변

3

이 시대 이후 밀리 초에서 새 Date을 만듭니다. 그런 다음 DateFormat을 사용하여 원하는 시간대로 형식을 지정하십시오.

Date date = new Date(1352437114052L); 
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
format.setTimeZone(TimeZone.getTimeZone("PST")); 
System.out.println(format.format(date)); 
4

이것은 epoch time이며 금, 09 11 월 2012 04:58:34 GMT를 나타냅니다. 이 숫자 값은 시간대와 관계없이 절대 시간입니다. 당신이 다른 시간대에 그 시점을보고 싶다면

, GregorianCalendar를 사용

Calendar c = new GregorianCalendar(TimeZone.getTimeZone("EST")); 
c.setTimeInMillis(1352437114052L); 
c.get(Calendar.HOUR_OF_DAY); //20:58 the day before 
+0

열쇠는'TimeZone'의 사용법입니다. 그렇지 않으면 기본 영역을 얻습니다. –

+0

변환 된 DateTime을 얻기 위해'DateTime converted = c.getTime();'을 사용하십시오. – wooohoh

0

@ 스티브 쿠오 (Steve Kuo)가 직접 질문에 대답했습니다.

String modifyDate; 
    Date date = new Date(a.lastModifiedTime().to(TimeUnit.MILLISECONDS)); 
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
    format.setTimeZone(TimeZone.getDefault()); 
    modifyDate = (format.format(date)).substring(0,10); 
관련 문제