DateTime 또는 TimeZone/TimezoneInfo를 3 글자를 표시하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1527706

문제

저는 아직 작업 할 필요가 없었던 독특한 DateTime 형식을 요구하는 사양으로 작업하고 있습니다.

공정 시점에서 OFX (1이 아닌) Datetime은 다음과 같은 형식으로 스탬프를 찍어야합니다 (dtclient 또는 dtserver).
20071015021529.000

그러나 예에서는 다음과 같습니다.

20071015021529.000[-8:PST]    

나는 진술을 사용하는 첫 번째 문제에 문제가 없습니다.

DateTime.Now.ToString("yyyyMMddHHmmss.fff")

얻는 방법도 알아낼 수도 있습니다 %z 올바른 오프셋을 얻으려면.

세 글자 시간대 코드는 내가 넘어가는 곳입니다. .NET에서 이것을 쉽게 얻을 수있는 방법이 있습니까, 아니면 내가 필요한 것을 출력하고 구문 분석하기 위해 코드를 작성하게 될 것입니까?

도움이 되었습니까?

해결책

필요한 3 글자 코드를 정확히 찾아야합니다. 어떤 것 Europe/Paris 예를 들어주십시오. 개인적으로, 시간대 정보를 실제로 보존 해야하는 한 데이터를 UTC로 변환하여 그런 식으로 형식화했습니다.

다른 팁

3 글자 시간 구역 코드는 국가 전체에서 고유하지 않으며 완전히 표준화되지 않습니다. 예를 들어, "CST"는 "Central Standard Time (미국) 또는"중국 표준 시간 "의 약어가 될 수 있습니다. 올바른 것은 로케일에 따라 다릅니다.

내가 아는 한, .NET 프레임 워크에는 이와 같은 코드를 찾아내는 기능이 내장되어 있지 않으므로 직접 구현해야합니다.

또한 (그러나 아마도 이것을 알고있을 것입니다),이 기능을 구현하는 방법에주의해야합니다. UTC 오프셋과 시간대 코드 사이에 반드시 일대일 서신이있는 것은 아닙니다. 예를 들어 UTC-0700은 US Mountain Standard Time (MST) 일 수 있습니다. 또는 미국 태평양 일광 시간 (PDT).

R을 사용하면 RFC 형식을 제공합니다. 도움이 될 것입니다.

String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"   RFC1123

당신은 또한 수 이 링크를 확인하십시오, 그것이 당신을 도울 수 있다면.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top