2012-08-14 2 views
1

이메일에 Date 헤더를 만들려고합니다. 다음과 같이시간대 이니셜은 어떻게 받습니까?

형식은 다음과 같습니다

DayOfWeek, Day ShortMonth Year Hours:Minutes:Seconds Offset (TimeZone) 

그래서 예는 다음과 같습니다

Fri, 19 Mar 2010 11:44:09 -0700 (PDT) 

그것의 내가 얻으려고 시간대 부분 (예에서 PDT). 이것이 시스템 전반에 걸쳐 다를 것이라는 것을 알고 있지만, 나는 그들 모두를위한 해결책을 원합니다.

감사합니다.

+0

흠 그것을 합리적인 값을하는 준다? 나는 방금 [RFC 822] (http://www.w3.org/Protocols/rfc822/#z28)를 훑어 보았고 숫자 또는 문자열 형식을 허용하는 것 같았습니다. 동시에 둘 다를 허용하는 것은 아닙니다. –

+0

@ MichałGórny LOL, 나는 GMail이하는 것을 복사하고 있었다. Did not는 rfc를 읽었다. – chacham15

+1

그리고 [RFC 2822] (http://tools.ietf.org/html/rfc2822#section-3.3)는 그 이름은 쓸모 없으며, 새로운 형식은 단지 "+ NNNN"또는 "-NNNN"이라고 말합니다. –

답변

3

%Zstrftime()에 찾고 있습니다.

:

#include <stdio.h> 
#include <time.h> 

int main() 
{ 
    char buf[16]; 
    time_t t = time(0); 

    strftime(buf, sizeof(buf), "%Z", localtime(&t)); 
    printf("%s\n", buf); 

    return 0; 
} 

을 그리고 (매우 휴대용 뜻) C89, AFAIR이다. C99 표준에서

발췌문 :

%Z 더 시간대는 측정 할 수없는 경우, 또는 아무 문자로 로케일의 시간대 이름 또는 약어로 대체됩니다. 우리가하지 눈치 [tm_isdst]

슬프게도, 모든 시스템은 해당 형식에 대한 확인, ...

+0

nm, 작동하지 않습니다. 창문에 mingw로 컴파일. : – chacham15

+0

그것은'ric'을 출력합니다 – chacham15

+0

흠, 잠시만 기다려주십시오. 내 Windows를 시작하고 그것이 무엇을 제공하는지 확인하십시오. –

관련 문제