2014-04-19 2 views
0

타임 스탬프를 다른 시간대로 변환하고 해당 시간대의 시간 밀리 초를 검색해야합니다. 나는 다음 시도했지만 있습니다 .. calendar.gettime가 시간대에 따라 현재의 시스템 시간이 아닌 시간을 인쇄하는하나의 시간대에서 타임 스탬프로 변환

SimpleDateFormat localDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      localDateFormat.setTimeZone(TimeZone.getTimeZone("anothertimezone)); 
      //Current Date Time in Local Timezone 
      System.out.println("Current Date and Time in local timezone: " + localDateFormat.format(new Date())); 
      Calendar calendar = localDateFormat.getCalendar();  
      System.out.println(calendar.getTime()); 

을 작동하지 않는 그

+0

, 당신은 여전히 ​​시대 이후의 밀리 초 같은 수있을 것이다. –

+0

안녕 바질, 나는 당신을 꽤 얻지 못했습니다 .. – oxygenan

+0

나는 타임 스탬프가 같다고 생각하니? 다른 지역의 날짜 시간은 다릅니다 – hsluo

답변

0

회원님이 달성 하려는지 확신

SimpleDateFormat localDateFormat = 
     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); 
System.out.println("Current Date/Time in local timezone: " + 
         localDateFormat.format(new Date())); 
localDateFormat.setTimeZone(TimeZone.getTimeZone("IST")); 
System.out.println("Current Date/Time in IST timezone: " + 
         localDateFormat.format(new Date())); 

또한 문자열 형태의 날짜와 시간을 가지고 그것을 구문 분석 할 수 있습니다 :

을, 그러나 이것은 CEST와 IST의 현재 시간을 출력 0

Date.toString에서 사용되는 기본값은 물론 로컬 설정입니다.

0

시간대를 조정하면 epoch부터 동일한 밀리 초가됩니다.

012를 사용하면 Java와 함께 번들로 제공되는 악명 높은 java.util.Date 및 .Calendar 클래스보다 훨씬 쉽게 2.을 사용할 수 있습니다. java.util.Date에는 시간대가 없지만 Joda-Time의 DateTime 객체는 실제로 자체 할당 된 시간대를 알고 있습니다.

다음은 몇 가지 예제 코드입니다. 이러한 모든 DateTime 객체는 유니버스의 타임 라인에서 동일한 순간, 즉 Unix 시대 (1970 년 초) 이후의 밀리 초와 동일한 시간을 나타냅니다. 확인하려면 getMillis 메서드를 호출하여 밀리 초 수를 추출하십시오.

String inputRaw = "2014-01-02 03:04:05"; 
String input = inputRaw.replace(" ", "T"); // Convert to strict version of ISO 8601 standard format. 
DateTimeZone timeZoneParis = DateTimeZone.forID("Europe/Paris"); 
DateTime dateTimeParis = new DateTime(input, timeZoneParis); // Interpret that string as being in a particular time zone. 
DateTime dateTimeUtc = dateTimeParis.withZone(DateTimeZone.UTC); 
DateTime dateTimeMontréal = dateTimeParis.withZone(DateTimeZone.forID("America/Montreal")); 

덤프가 콘솔로 ...

System.out.println("input: " + input); 
System.out.println("dateTimeParis: " + dateTimeParis); 
System.out.println("dateTimeParis millis: " + dateTimeParis.getMillis()); 
System.out.println("dateTimeUtc: " + dateTimeUtc); 
System.out.println("dateTimeUtc millis: " + dateTimeUtc.getMillis()); 
System.out.println("dateTimeMontréal: " + dateTimeMontréal); 
System.out.println("dateTimeMontréal millis: " + dateTimeMontréal.getMillis()); 

실행 ... 당신이 시간대를 조정하면

input: 2014-01-02T03:04:05 
dateTimeParis: 2014-01-02T03:04:05.000+01:00 
dateTimeParis millis: 1388628245000 
dateTimeUtc: 2014-01-02T02:04:05.000Z 
dateTimeUtc millis: 1388628245000 
dateTimeMontréal: 2014-01-01T21:04:05.000-05:00 
dateTimeMontréal millis: 1388628245000 
관련 문제