C#日期时间格式

时间:2017-10-20 10:14:01

标签: c#

如何在

中获取日期时间
  

2017-06-15T14:20:30 + 02:00

格式来自

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", "MANIFEST.MF")         => MergeStrategy.concat
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}

这是ISO 8601日期格式。我试过

DateTime.utc.now

但我得到的日期是

  

二零一七年十月二十零日-T09:29:20 + 00:00

该应用程序托管在Azure中。

3 个答案:

答案 0 :(得分:1)

我认为你误解了ISO8601。对于UtcNow,偏移后缀将始终为+00:00。格式显示本地时间,后缀表示本地时间相对于UTC时间偏移了多少。

UtcNow是UTC区域中的当前时间,而不是本地区域 - ergo,它与UTC的偏移量为0。

答案 1 :(得分:0)

DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH:mm:ss") + DateTimeOffset.Now.Offset.ToString();

这是如何工作的:

EX 1:

DateTimeOffset localTime = DateTimeOffset.Now;
DateTimeOffset utcTime = DateTimeOffset.UtcNow;

Console.WriteLine("Local Time:          {0}", localTime.ToString("T"));
Console.WriteLine("Difference from UTC: {0}", localTime.Offset.ToString());
Console.WriteLine("UTC:                 {0}", utcTime.ToString("T"));
// If run on a particular date at 1:19 PM, the example produces
// the following output:
//    Local Time:          1:19:43 PM
//    Difference from UTC: -07:00:00
//    UTC:                 8:19:43 PM  

前2:

var dt = new DateTime(2010, 1, 1, 1, 1, 1, DateTimeKind.Utc);
        string s = dt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss \"GMT\"zzz");
        Console.WriteLine(s);

答案 2 :(得分:0)

尝试这个。

    DateTime.UtcNow.ToString(@"yyyy-MM-ddTHH\:mm\:sszzz")