2016-09-08 1 views
0

시간대 오프셋 (예 : +01 : 00 항상)의 특정 값으로 인쇄해야하는 .NET 프로그램에 DateTime이 있습니다. 출력에는 시간대가있는 전체 날짜 시간이 포함되어야합니다. 시스템 시간대 설정과 관련이 없어야합니다. 어떻게 이걸 이룰 수 있니?미리 정의 된 표준 시간대로 문자열로 출력 DateTime

예 : 12-03-2016T12 : 30 : 34 + 03 : 00과 같은 타임 스탬프가 있으며 미리 정의 된 TZ +1에 대해 계산 된 값을 출력해야합니다. 12-03-2016T10 : 30 : 34 + 01 : 00

+0

을 참조하십시오. DateTime.AddHours (hours) is does this? – Takarii

+0

그럼 어떤 문제가 당신을 괴롭 히고 있습니까? 어떤 종류의'DateTime'을 가지고 있습니까 (Utc, Unspecified, Local). 표준 시간대 오프셋 자체를 포함해야합니까, 아니면 현지 시간을 출력하려고합니까? 그 순간에 당신을 도울 수있는 자세한 내용이 없습니다 ... –

+0

@JonSkeet 저는 시간대 오프셋을 필요로합니다. 초기 datetime은 타임 스탬프 문자열에서 파싱됩니다. 나는 그것이 종류 일 수 있다고 생각한다. –

답변

0

일부 접근 방법을 찾았습니다.

우선, DateTime에는 시간대가 저장되어 있지 않습니다. 그 대신 UTC인지 로컬인지 (로컬 TZ 시프트가 무엇인지 알지 못함) 플래그가 있습니다. 그래서 : 우선 UTC로 된 문자열 타임 스탬프에서 시간을 파싱하는 것입니다.

DateTime 개체에 저장되면 (Kind = UTC 사용) 출력을 원하는 시간대로 변환해야합니다. 여기 유용한 예제가 있습니다 : datetime to string with time zone.

참고 : 런던 서머 타임을 변환해야하는 경우 제대로 얻으려면 NET에서 시간대의 올바른 이름을 알아야합니다. Difference between UTC and GMT Standard Time in .NET

관련 문제