我需要没有utcOffset的往返格式的DateTime.Now值。基于此MSDN article,如果您在没有UtcOffset的情况下创建DateTime的新实例,它将生成我想要的格式。
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
// Displays 2008-04-10T06:30:00.0000000
但如果我使用DateTime.Now,我会得到字符串中的偏移量:
DateTime.Now.ToString("o")
// Displays 2012-02-08T14:11:12.8378703-05:00
我可以使用子字符串或填充没有它的DateTime实例,但我想知道是否有办法删除UtcOffset。
答案 0 :(得分:6)
如果DateTime.Kind既不是Utc也不是Local,则会忽略UTC偏移量(例如“-05:00”或“Z”)。
您可以按如下方式创建此类DateTime值:
DateTime.UtcNow.ToString("o");
// "2012-02-08T19:19:38.5767158Z"
new DateTime(DateTime.UtcNow.Ticks).ToString("o");
// "2012-02-08T19:19:38.5767158"
new DateTime(DateTime.Now.Ticks).ToString("o");
// "2012-02-08T14:19:38.5767158"
答案 1 :(得分:3)
如果我了解您的需求,可以使用DateTime.UtcNow。
DateTime.Now.ToString("o")
DateTime.UtcNow.ToString("o")
输出:
2012-02-08T13:18:22.4459488-06:00 2012-02-08T19:18:22.4599488Z
答案 2 :(得分:0)
我只是通过使用
将我归零new DateTimeOffset(Date_Goes_Here, TimeSpan.Zero);