【问题标题】:Formatting DateTime.Now.ToUniversalTime() without string.Format()在没有 string.Format() 的情况下格式化 DateTime.Now.ToUniversalTime()
【发布时间】:2013-01-13 04:37:37
【问题描述】:

DateTime.Now.ToUniversalTime() 给我“2013/1/13 4:31:39”,但我想要“2012-01-13T04:31:39Z”,这在网站的 rss xml 节点中很常见。我打算在html5的<time>属性中使用这种格式。

我知道可以使用 .ToString("yyyy-MM-ddTHH:mm:ssZ") 来完成,但我在想 .NET 中是否有任何现有的 API 可以做到这一点?

【问题讨论】:

标签: c# datetime string-formatting iso8601


【解决方案1】:

除了 'T' 之外的大部分内容,它都放置了一个空格

dateValue.ToString("u")   //=> 2013-01-13 04:43:05Z

还可以查看往返版本,即将“o”传递给ToString,唯一的问题是它提供了您似乎需要的更多精度

dateValue.ToString("o")       // => 2013-01-13T04:47:34.7559072Z

【讨论】:

  • 谢谢,我会在 html5 验证器和搜索引擎上对其进行测试,如果缺少“T”是可以的。
  • @MaximR - 是的,这是我尝试的第一件事。它为您提供 OP 似乎不想要的毫秒。
  • @EdiWang - 你也可以通过简单的替换来解决这个问题,例如dateValue.ToString("u").Replace(" ","T")
  • 做这一切似乎很奇怪,如果它不喜欢“u”或“o”输出,只需像您的问题中那样以固定格式调用 ToString 并称之为一天。跨度>
  • @Gishu 是的。我认为缺少“T”很好,HTML5 验证器可以正确读取时间。这就是我的目的:)
猜你喜欢
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-05
  • 2011-02-23
  • 2014-10-12
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多