我正在使用一个规格,该规范需要一种奇特的DateTime格式,我不一定必须使用该格式。

在过程时,必须以这样的格式盖上OFX(1不是2)DATETIME(DTCLIENT或DTSERVER):
20071015021529.000

但是,在示例中显示:

20071015021529.000[-8:PST]    

我对第一个使用的语句没有问题

DateTime.Now.ToString("yyyyMMddHHmmss.fff")

我什至可以弄清楚如何获得 %z 要获得正确的偏移。

三个字母时区代码是我绊倒的地方。是否有一种简单的方法可以在.NET中获取此功能,或者我最终将编写代码以输出和解析我需要的内容?

有帮助吗?

解决方案

您需要确切找出所需的3个字母代码。什么会 Europe/Paris 例如?就个人而言,我将数据转换为UTC并以这种方式格式化,除非您实际需要保留时区信息。

其他提示

三个字母的时区代码在各个国家不是唯一的,也不是完全标准化的。例如,“ CST”可以是“中央标准时间(美国)”或“中国标准时间”的缩写。正确取决于您的语言环境。

据我所知,.NET框架中没有内置的功能来查找这样的代码,因此您需要自己实施。

此外(但您可能知道这一点),您需要注意如何实现此功能。 UTC偏移和时区代码之间不一定有一对一的对应关系。例如,UTC-0700可能是美国山区标准时间(MST) 或者 美国太平洋日光时间(PDT)。

如果您使用R,它将为您提供RFC格式。它会帮助您吗?

String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"   RFC1123

你也可以 检查此链接, ,如果可以帮助您。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top