정확한 오프셋을 사용하여 UTC DateTime을 EST DateTime으로 변환

러들

내 앱은 UTC로 DateTime 개체를 가져오고 EST 형식의 문자열로 출력해야합니다. 다음 코드를 시도했지만 출력을 얻으면 오프셋이 여전히 -05 : 00 대신 +00 : 00으로 표시됩니다.

static void Main(string[] args)
    {
        var currentDate = DateTime.Now.ToUniversalTime();
        var convertedTime = ConvertUtcToEasternStandard(currentDate);

        Console.WriteLine(currentDate.ToString("yyyy-MM-ddTHH:mm:sszzz"));
        Console.WriteLine(convertedTime.ToString("yyyy-MM-ddTHH:mm:sszzz"));
    }

private static DateTime ConvertUtcToEasternStandard(DateTime dateTime)
    {
        var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
        return TimeZoneInfo.ConvertTimeFromUtc(dateTime, easternZone);
    }

결과는 다음과 같습니다.

2016-11-18T06:56:14+00:00
2016-11-18T01:56:14+00:00

따라서 시간이 올바르게 이동되고 있지만 오프셋은 -05 : 00이 되길 원할 때 +00 : 00으로 유지됩니다. 위의 형식 문자열로 출력 할 때 올바른 오프셋으로 DateTime 개체를 얻는 방법에 대한 아이디어가 있습니까?

국장

얼마 전에 API 에서 이것을 읽었습니다 . 기본적으로 DateTime으로 zzz형식 오프셋을 유용한 것으로 얻는 것은 매우 불가능 합니다.

DateTime 값을 사용하는 "zzz"사용자 지정 형식 지정자는 UTC에서 로컬 운영 체제 표준 시간대의 서명 된 오프셋을 나타내며 시간과 분으로 측정됩니다. 인스턴스의 DateTime.Kind 속성 값을 반영하지 않습니다. 이러한 이유로 "zzz"형식 지정자는 DateTime 값에 사용하지 않는 것이 좋습니다.

DateTimeOffset 값을 사용하는 경우이 형식 지정자는 UTC로부터의 DateTimeOffset 값 오프셋 (시간 및 분)을 나타냅니다.

오프셋은 항상 선행 기호와 함께 표시됩니다. 더하기 기호 (+)는 UTC보다 앞선 시간을 나타내고 빼기 기호 (-)는 UTC보다 늦은 시간을 나타냅니다. 한 자리 오프셋은 선행 0으로 형식화됩니다.


예를 들어, 나는 동부 표준시 이고 이것이 내 결과입니다.

2016-11-18T07:9:38-05:00
2016-11-18T02:9:38-05:00

분명히 UTC 시간에는 오프셋이 없어야합니다 -05:00.


코드를 약간 수정하면 해결책이 있습니다.

void Main()
{
    var currentDate = DateTimeOffset.Now.ToUniversalTime();
    var convertedTime = ConvertUtcToEasternStandard(currentDate);
    
    var format = "yyyy-MM-ddTHH:m:sszzz";
    Console.WriteLine(currentDate.ToString(format));
    Console.WriteLine(convertedTime.ToString(format));
}

// Define other methods and classes here
private static DateTimeOffset ConvertUtcToEasternStandard(DateTimeOffset dateTime)
{
    var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
    return TimeZoneInfo.ConvertTime(dateTime, easternZone);
}

결과:

2016-11-18T07:17:46+00:00
2016-11-18T02:17:46-05:00

그게 더 비슷합니다.

참고 : 이전 코드를 대체하고 무지가 제게 최선을 다했고 제대로 작동하지 않는다는 사실을 깨닫지 못했습니다. TimeZoneInfo.ConvertTime소요 DateTimeOffset우리가 원하는 것을 수행한다.

다음에 대한 다른 케이스를 추가하면 Pacific Standard Time:

private static DateTimeOffset ConvertUtcToPacificStandard(DateTimeOffset dateTime)
{
    var pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
    return TimeZoneInfo.ConvertTime(dateTime, pacificZone);
}

올바른 결과를 얻습니다.

2016-11-17T23:21:21-08:00

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UTC datetime을 시간대를 사용하여 로컬 datetime으로 변환

분류에서Dev

날짜, 시간 및 UTC 오프셋을 로컬 DateTime으로 변환하는 방법

분류에서Dev

DateTimeZone을 UTC 오프셋으로 변환

분류에서Dev

UTC 분 오프셋으로 .net 코어 DateTime 변환

분류에서Dev

Python을 사용하여 datetime.date를 Date.UTC로 변환하는 방법

분류에서Dev

UTC에서 CST 로의 변환이 datetime을 사용하여 잘못됨

분류에서Dev

datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

분류에서Dev

datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

분류에서Dev

Android Java에서 UTC + 0으로 DateTime을 변환하고 가져오고 DateTime의 비교

분류에서Dev

strftime을 사용하여 문자열을 datetime으로 변환

분류에서Dev

오프셋 비교를 통해 UTC 시간을 로컬 날짜 시간으로 변환하는 XSL

분류에서Dev

pd.to_datetime을 사용하여 HHMMSS 형식으로 int 변환

분류에서Dev

Pandas : 시간대 이름을 사용하여 datetime으로 변환

분류에서Dev

사용자 지정 문자열을 DateTime으로 변환

분류에서Dev

DateTime을 UTC에서 로컬로 변환 한 다음 요소를 안정적으로 캡처하려면 어떻게합니까

분류에서Dev

누락 된 더하기 기호 오프셋 datetime 문자열로 적절한 datetime으로 변환

분류에서Dev

datetime.datetime을 datetime으로 변환

분류에서Dev

moment.js 및 moment 시간대를 사용하여 날짜, 시간 및 오프셋을 ISO8601 DateTime으로 변환

분류에서Dev

PowerShell UTC datetime 객체를 EST로 변환하는 방법

분류에서Dev

오프셋이있는 날짜 문자열을 오프셋을 무시하고 사용자 지정 형식으로 변환

분류에서Dev

Glyphter.com을 사용하여 SVG를 글꼴로 변환 할 때 오프셋-오프셋

분류에서Dev

nullable DateTime을 UTC DateTime으로 캐스팅하는 방법

분류에서Dev

오프셋을 사용하여 Json 날짜를 Java 날짜로 변환

분류에서Dev

.NET Noda 시간 특정 시간대의 로컬 DateTime을 UTC로 변환

분류에서Dev

UTC datetime을 BST 시간으로 변환하는 방법 영국 서머 타임 (BST) Laravel Carbon

분류에서Dev

부스트를 사용하여 UTC 시간을 사용자 지정 시간대로 변환

분류에서Dev

datetime을 strptime으로 변환

분류에서Dev

timespan을 datetime으로 변환

분류에서Dev

틱을 Datetime으로 변환

Related 관련 기사

  1. 1

    UTC datetime을 시간대를 사용하여 로컬 datetime으로 변환

  2. 2

    날짜, 시간 및 UTC 오프셋을 로컬 DateTime으로 변환하는 방법

  3. 3

    DateTimeZone을 UTC 오프셋으로 변환

  4. 4

    UTC 분 오프셋으로 .net 코어 DateTime 변환

  5. 5

    Python을 사용하여 datetime.date를 Date.UTC로 변환하는 방법

  6. 6

    UTC에서 CST 로의 변환이 datetime을 사용하여 잘못됨

  7. 7

    datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

  8. 8

    datetime 패키지 만 사용하여 현재 시간을 UTC 시간 파이썬으로 변환

  9. 9

    Android Java에서 UTC + 0으로 DateTime을 변환하고 가져오고 DateTime의 비교

  10. 10

    strftime을 사용하여 문자열을 datetime으로 변환

  11. 11

    오프셋 비교를 통해 UTC 시간을 로컬 날짜 시간으로 변환하는 XSL

  12. 12

    pd.to_datetime을 사용하여 HHMMSS 형식으로 int 변환

  13. 13

    Pandas : 시간대 이름을 사용하여 datetime으로 변환

  14. 14

    사용자 지정 문자열을 DateTime으로 변환

  15. 15

    DateTime을 UTC에서 로컬로 변환 한 다음 요소를 안정적으로 캡처하려면 어떻게합니까

  16. 16

    누락 된 더하기 기호 오프셋 datetime 문자열로 적절한 datetime으로 변환

  17. 17

    datetime.datetime을 datetime으로 변환

  18. 18

    moment.js 및 moment 시간대를 사용하여 날짜, 시간 및 오프셋을 ISO8601 DateTime으로 변환

  19. 19

    PowerShell UTC datetime 객체를 EST로 변환하는 방법

  20. 20

    오프셋이있는 날짜 문자열을 오프셋을 무시하고 사용자 지정 형식으로 변환

  21. 21

    Glyphter.com을 사용하여 SVG를 글꼴로 변환 할 때 오프셋-오프셋

  22. 22

    nullable DateTime을 UTC DateTime으로 캐스팅하는 방법

  23. 23

    오프셋을 사용하여 Json 날짜를 Java 날짜로 변환

  24. 24

    .NET Noda 시간 특정 시간대의 로컬 DateTime을 UTC로 변환

  25. 25

    UTC datetime을 BST 시간으로 변환하는 방법 영국 서머 타임 (BST) Laravel Carbon

  26. 26

    부스트를 사용하여 UTC 시간을 사용자 지정 시간대로 변환

  27. 27

    datetime을 strptime으로 변환

  28. 28

    timespan을 datetime으로 변환

  29. 29

    틱을 Datetime으로 변환

뜨겁다태그

보관