C#에서 UTC 형태의 시간을 구하는 방법을 확인해보겠습니다.
UTC란?
시간대(時間帶)는 영국의 그리니치 천문대(본초 자오선, 경도 0도)를 기준으로 지역에 따른 시간의 차이, 다시 말해 지구의 자전에 따른 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분선을 일컫는다. 시간대는 협정 세계시(UTC)를 기준으로한 상대적인 차이로 나타낸다.
영국시를 기준으로 각 나라별 시차를 조정하기 위한 기준 시간이라고 생각하면 됩니다.
우리나라의 경우 UTC+9 로 표기됩니다.
협정세계시(UTC) 기준으로 +9시간을 추가한 시간이 됩니다.
예를 들어, 우리나라 시간이 22시라면 9시간을 뺀 13시가 UTC입니다.
https://ko.wikipedia.org/wiki/시간대
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
'C# > 기본' 카테고리의 다른 글
[C#] 문자열 자르기 붙이기 split join substring (0) | 2019.10.25 |
---|---|
[C#] 문자열 찾기 및 존재 여부 확인(indexof , Contains) (1) | 2019.10.25 |
[C#] .json file write (json 파일로 저장하기) (0) | 2019.10.22 |
[ironpython] C#에서 python 코드 실행하기 (6) | 2019.10.13 |
C# tryparse 숫자 체크 (number check) (1) | 2019.09.28 |
최근댓글