我认为这应该很简单,但无法得到它:(.这种格式Z是时区
.T是长时间模式
我怎么能得到这种格式的日期除了使用
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));
Run Code Online (Sandbox Code Playgroud)
在C#中
Chr*_*s S 130
Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");
Run Code Online (Sandbox Code Playgroud)
2009-11-13T10:39:35Z
该ž是因为存在
如果时间是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);
Run Code Online (Sandbox Code Playgroud)
需要注意的两件事:在时间之后需要+或 - 但显然+在正数上没有显示.根据维基百科,偏移可以是+ hh格式或+ hh:mm.我一直待上几个小时.
据我所知,RFC1123(HTTP日期,"你"格式化程序)并不意味着给出时区偏移.所有时间都是GMT/UTC.
Ram*_* A. 60
Console.WriteLine(DateTime.UtcNow.ToString("o"));
Console.WriteLine(DateTime.Now.ToString("o"));
Run Code Online (Sandbox Code Playgroud)
输出:
2012-07-09T19:22:09.1440844Z
2012-07-09T12:22:09.1440844-07:00
Run Code Online (Sandbox Code Playgroud)
Luc*_*asM 10
DateTime与DateTimeOffset的"o"格式不同:(
DateTime.UtcNow.ToString("o") -> "2016-03-09T03:30:25.1263499Z"
DateTimeOffset.UtcNow.ToString("o") -> "2016-03-09T03:30:46.7775027+00:00"
Run Code Online (Sandbox Code Playgroud)
我的最终答案是
DateTimeOffset.UtcDateTime.ToString("o") //for DateTimeOffset type
DateTime.UtcNow.ToString("o") //for DateTime type
Run Code Online (Sandbox Code Playgroud)
Tod*_*ier 10
在 C# 6+ 中,您可以使用字符串插值并使其更简洁:
$"{DateTime.UtcNow:s}Z"
Run Code Online (Sandbox Code Playgroud)
使用:
DateTime.UtcNow.ToString("yyyy-MM-ddThh:mm:ss.fffZ")
Run Code Online (Sandbox Code Playgroud)
结果是:2021-05-26T10:17:38.549Z
小智 6
一种选择是在使用“o”格式转换为字符串之前将 DateTime 转换为ToUniversalTime()。例如,
var dt = DateTime.Now.ToUniversalTime();
Console.WriteLine(dt.ToString("o"));
Run Code Online (Sandbox Code Playgroud)
它会输出:
2016-01-31T20:16:01.9092348Z
Run Code Online (Sandbox Code Playgroud)
小智 5
单行代码。
var temp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
Run Code Online (Sandbox Code Playgroud)