나는 이것이 아주 간단을해야하지만, 가정을 가져올 수 없습니다 :(.이 형식에서 Z 시간대입니다.
T는 오랜 시간 패턴입니다
내가 사용 제외하고이 형식의 날짜를 얻을 수있는 방법
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));
C #에서
답변
UTC 사용
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