[c#] 날짜 형식 yyyy-MM-ddTHH : mm : ssZ

나는 이것이 아주 간단을해야하지만, 가정을 가져올 수 없습니다 :(.이 형식에서 Z 시간대입니다.

T는 오랜 시간 패턴입니다

내가 사용 제외하고이 형식의 날짜를 얻을 수있는 방법

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));

C #에서



답변

UTC 사용

ISO 8601 ( MSDN 날짜 시간 형식 )

Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");

2009-11-13T10 : 39 : 35Z

Z는 이 때문이다

시간이 UTC 인 경우 공백없이 시간 바로 뒤에 ‘Z’를 추가합니다. ‘Z’는 제로 UTC 오프셋에 대한 영역 지정자입니다. 따라서 “09:30 UTC”는 “09 : 30Z”또는 “0930Z”로 표시됩니다. “14:45:15 UTC”는 “14 : 45 : 15Z”또는 “144515Z”입니다.

오프셋을 포함하려는 경우

int hours = TimeZoneInfo.Local.BaseUtcOffset.Hours;
string offset = string.Format("{0}{1}",((hours >0)? "+" :""),hours.ToString("00"));
string isoformat = DateTime.Now.ToString("s") + offset;
Console.WriteLine(isoformat);

주의해야 할 두 가지 : + 또는-는 시간 후에 필요하지만 분명히 +는 양수에 표시되지 않습니다. 위키 백과에 따르면 오프셋은 + hh 형식 또는 + hh : mm 일 수 있습니다. 나는 단지 몇 시간을 지켰다.

내가 아는 한, RFC1123 (HTTP 날짜, “u”포맷터)은 시간대 오프셋을 제공하기위한 것이 아닙니다. 모든 시간은 GMT / UTC입니다.


답변

Console.WriteLine(DateTime.UtcNow.ToString("o"));
Console.WriteLine(DateTime.Now.ToString("o"));

출력 :

2012-07-09T19:22:09.1440844Z
2012-07-09T12:22:09.1440844-07:00


답변

“o”형식은 DateTime 대 DateTimeOffset에서 다릅니다.

DateTime.UtcNow.ToString("o") -> "2016-03-09T03:30:25.1263499Z"

DateTimeOffset.UtcNow.ToString("o") -> "2016-03-09T03:30:46.7775027+00:00"

내 마지막 대답은

DateTimeOffset.UtcDateTime.ToString("o")   //for DateTimeOffset type
DateTime.UtcNow.ToString("o")              //for DateTime type


답변

C # 6+에서는 문자열 보간을 사용하여 더 간결하게 만들 수 있습니다.

$"{DateTime.UtcNow:s}Z"


답변

여기 “U”와 “의”패턴을. 첫 번째는 ‘T’구분 기호가없고 두 번째는 시간대 접미사가 없습니다.


답변

이를위한 한 줄 코드입니다.

var temp   =  DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");


답변

한 가지 옵션은 “o” 형식을 사용하여 문자열로 변환하기 전에 DateTime을 ToUniversalTime () 으로 변환하는 것 입니다. 예를 들면

var dt = DateTime.Now.ToUniversalTime();
Console.WriteLine(dt.ToString("o"));

다음과 같이 출력됩니다.

2016-01-31T20:16:01.9092348Z