Android 시스템 시간 제식 가 져 오기 (24 시간 제식 / 12 시간 제식) 및 UTC 와 로 컬 시간의 변환

5146 단어 android
I. 시스템 시간 제 가 져 오기 (12 시간 제 / 24 시간 제)
 
1. 배경 / 사용 장면
일부 소프트웨어 에 서 는 시간 정 보 를 보 여 줘 야 할 수도 있 습 니 다. 이 정 보 는 서버 가 UTC 형식 이나 유 닉 스 timestamp 형식 으로 보 내 온 것 일 수도 있 습 니 다. 터미널 에 서 는 이 를 로 컬 시간 으로 바 꿔 보 여 줘 야 할 수도 있 습 니 다.
 
한편, 개인의 취향 에 따라 단말기 의 제식 은 12 시간 제 일 수도 있 고 24 시간 제 일 수도 있다. 소프트웨어 의 친화 도 를 위해 현재 시스템 의 시간 에 따라 제식, 동적 전환 제식 을 해 야 한다. 그러면 시스템 이 현재 설정 한 시간 제식 을 가 져 와 야 한다.
 
2. 획득 방법
  
ContentResolver cv = this.getContentResolver();
//         
String strTimeFormat = android.provider.Settings.System.getString(cv,
 android.provider.Settings.System.TIME_12_24);
        
if(strTimeFormat.equals("24"))
{
     Log.i("activity","   24  ");
}

if(strTimeFormat.equals("12"))
{
     Log.i("activity","   12  ");
}


 
3. 어떻게 12 시간 제식 / 24 시간 제식 의 표현 방식 으로 전환 합 니까?
 
String getTimestamp() 
{
    //    24       
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss sss");
    Date date = new Date();
    return df.format(date);
}

 
   HH: 돌아 오 는 시간 은 24 시간 제 입 니 다.
   hh: 12 시간 제 시간 으로 돌아 갑 니 다.
 II, 시간 대
 
1. 기본 개념
 
시간 대:
time zone 1884 년 국제 경선 회의 규정 에 따 르 면 전 세 계 는 경도 에 따라 24 개 시간 대 로 나 뉘 는데 각 지역 은 각각 경도 15 도 를 차지한다.
본 초 자오선 을 중앙 경선 으로 하 는 시 구 는 0 시구 이 고 0 시구 에서 동, 서 로 는 각각 12 구 로 나 뉘 며 동, 서 12 구 는 모두 반 시구 로 180 ° 경선 을 공동으로 사용 하 는 지방 시 이다.
 
CST :
China Standard Time UTC + 8: 00 중국 표준 시간 (베 이 징 시간), 동 팔 구 에 있 습 니 다.
 
UTC :
Universal Time Coordinated 는 세계 조율 시간 으로 세계 표준 시간, 세계 통일 시간 이 라 고도 부른다.UTC 는 시간 대 와 무관 한 (또는 시간 대 에 특정 되 지 않 은) 시간 을 제공한다.
세계 의 모든 시간 대 는 UTC 에 편 이 량 을 더 하거나 빼 는 것 을 나 타 낼 수 있다.
따라서 UTC 는 베 이 징 은 오전 8 시 (동 8 구), UTC 시간 은 0 시 로 베 이 징 보다 8 시간 늦다.
 
GMT :
그리니치 메 인 타임 그리니치 표준 시간 은 영국 런던 교외 에 있 는 로 열 그리니치 천문대 의 표준 시간 을 말한다. 이 초 자오선 은 그곳 을 통과 하 는 경선 으로 정의 되 기 때문이다.
 
Unix timestamp :
유 닉 스 타임 스탬프 또는 유 닉 스 시간 (Unix time), POSIX 시간 (POSIX time) 이 라 고도 부 르 는 시간 표시 방식 입 니 다.
그리니치 시간 (UTC / GMT 의 자정) 인 1970 년 01 월 01 일 00 시 00 분 00 초부 터 지금까지 의 총 초 수로 정의 된다.
 
이렇게 말 할 수 있다.
UTC 와 GMT 는 거의 같은 개념 이 고 이들 의 차 이 는 GMT 는 천문학 적 개념 이 며 UTC 는 원자시 계 를 바탕 으로 한 다 는 것 이다.
GMT = UTC (정확히 말 하면 UTC = GMT + / - 0.9 s)
GMT + 8 = UTC + 8 = CST
UTC + 시간차 = 현지 시간 (시간차 동 은 플러스, 서 는 마이너스, 동 팔 구 는 + 0800)
 
2. UTC 와 GMT 로 컬 시간 대의 전환
서버 가 전송 하 는 UTC 시간 을 지정 한 시간 대로 변환 합 니 다. 예제 코드 는 다음 과 같 습 니 다.
 
로 컬 로 컬 시간 으로 전환 하면 로 컬 시간 대 를 직접 전달 하면 됩 니 다.
로 컬 시간 대 를 가 져 오 는 방법 은 TimeZone. getDefault () 입 니 다.
 
/*  Server   UTC             */
public String converTime(String srcTime, TimeZone timezone)
{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    SimpleDateFormat dspFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String convertTime;
                    
    Date result_date; 
    long result_time = 0; 
        
    //         ,          
    if (null == srcTime)
    {
         result_time = System.currentTimeMillis();
    }
    else
    {
         //           UTC  
         try
         {
              sdf.setTimeZone(TimeZone.getTimeZone("GMT00:00"));
              result_date = sdf.parse(srcTime);

              result_time = result_date.getTime();
          }
          catch (Exception e)
          {
                //      ,      
             result_time = System.currentTimeMillis();
                dspFmt.setTimeZone(TimeZone.getDefault());
                convertTime = dspFmt.format(result_time);
                return convertTime;
           }
    }
    
    //                 
    dspFmt.setTimeZone(timezone);
    convertTime = dspFmt.format(result_time);
        
    Log.e("current zone:", "id=" + sdf.getTimeZone().getID()
            + "  name=" + sdf.getTimeZone().getDisplayName());
        
    return convertTime;
}

 
 
3. 유 닉 스 timestamp 와 GMT 의 전환
 상세 하 다
http://www.cnblogs.com/flying5/archive/2011/12/05/2276578.html #
 
네티즌 자료 참고:
http://blog.csdn.net/hgm770876501/article/details/8502364
http://blog.csdn.net/liu17ezlyy/article/details/8251731
http://www.cnblogs.com/flying5/archive/2011/12/05/2276578.html #

좋은 웹페이지 즐겨찾기