C#에서 UTC 형태의 시간을 구하는 방법을 확인해보겠습니다.

 

UTC란?

시간대(時間帶)는 영국 그리니치 천문대(본초 자오선, 경도 0도)를 기준으로 지역에 따른 시간의 차이, 다시 말해 지구의 자전에 따른 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분선을 일컫는다. 시간대는 협정 세계시(UTC)를 기준으로한 상대적인 차이로 나타낸다.

 

영국시를 기준으로 각 나라별 시차를 조정하기 위한 기준 시간이라고 생각하면 됩니다.

 

우리나라의 경우 UTC+9 로 표기됩니다.

협정세계시(UTC) 기준으로 +9시간을 추가한 시간이 됩니다.

예를 들어, 우리나라 시간이 22시라면 9시간을 뺀 13시가 UTC입니다.

https://ko.wikipedia.org/wiki/시간대

 

시간대 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 시간대(時間帶)는 영국의 그리니치 천문대(본초 자오선, 경도 0도)를 기준으로 지역에 따른 시간의 차이, 다시 말해 지구의 자전에 따른 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분선을 일컫는다. 시간대는 협정 세계시(UTC)를 기준으로한 상대적인 차이로 나타낸다. 나라별 시간대[편집] 참고 오른쪽에 *나 **가 붙어 있는 지역은 서머 타임을 사용하는 곳이

ko.wikipedia.org

 

 

UTC 협정세계시가 기준이 되기 때문에,

해외 API와 연동이 필요한 경우 서로간의 기준 시간을 맞추기 위해 UTC를 활용할 수 있겠네요.

 

 

C# 코드에서 확인해보도록 하겠습니다.

datetime 클래스를 통해 시간 객체를 생성한 후 tostring()으로 원하는 foramt으로 변경해주 면됩니다.

 

DateTime 클래스의 static 속성인 Now와 UtcNow 를 활용해서 출력했습니다.

Now는 로컬 컴퓨터 국가의 기준시간으로 출력됩니다. 저의 경우 한국시간으로 출력되겠네요.

UtcNow는 협정세계시 기준으로 출력됩니다. Now에서 출력된 값의 -9시간이 되겠네요.

 

또한, 출력값도 iso 8601 foramt으로 출력된 것을 알 수 있습니다.

using System;

namespace Checkdatetime
{
    class Program
    {
        static void Main(string[] args)
        {

            //한국시간 기준 (출력 : 2019-10-24T21:57:56Z)
            string time  = DateTime.Now.ToString("s")+"Z";

            //UTC TIME (출력 : 2019-10-24T12:57:56Z)
            string time2 = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");

            //UTC TIME (출력 : 2019-10-24T12:57:56.0190721Z)
            string time3 = DateTime.UtcNow.ToString("o");

            //UTC TIME(출력 : 2019-10-24T12:57:56.0190976+00:00)
            string time4 = DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"); 

            Console.WriteLine(time);
            Console.WriteLine(time2);
            Console.WriteLine(time3);
            Console.WriteLine(time4);

        }
    }
}

 

#코드 출력결과

 

C#에서는 ToString()함수를 활용해 간단하게 다양한 시간 foramt을 출력할 수 있습니다.

아래는 msdn doc페이지에 각 형식지정자별 출력결과에 대한 정의가 되어있습니다.

추가적으로 필요한 format이 있다면 아래 문서에서 확인 가능합니다.

 

형식지정자를 확인해서 tostring()함수에 넣어주기만 하면됩니다.

toString("이곳에 format지정")

 

https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/custom-date-and-time-format-strings

 

사용자 지정 날짜 및 시간 형식 문자열 - .NET

사용자 지정 날짜 및 시간 서식 문자열Custom date and time format strings 이 문서의 내용 --> 날짜 및 시간 형식 문자열은 형식 지정 작업에서 생성되는 DateTime 또는 DateTimeOffset 값의 텍스트 표현을 정의합니다.A date and time format string defines the text representation of a DateTime or DateTimeOffset value that resul

docs.microsoft.com

 

LIST
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기