我正在使用一个规范,该规范需要一种特殊的日期时间格式,但我还没有必要使用它。
在处理时,必须以下列格式标记OFX(1而非2)日期时间(DTCLIENT或DTSERVER):
20071015021529.000
然而,在示例中显示:
20071015021529.000[-8:PST]
第一个使用
语句的问题我没有问题DateTime.Now.ToString("yyyyMMddHHmmss.fff")
我甚至可以弄清楚如何让%z
获得正确的偏移。
三个字母的时区代码是我绊倒的地方。有没有一种简单的方法可以在.net中获取它,或者我最终会编写代码来输出和解析我需要的内容?
答案 0 :(得分:5)
三个字母的时区代码在各个国家/地区并不是唯一的,并且不是完全标准化的。例如,“CST”可以是“中央标准时间(美国)”或“中国标准时间”的缩写。哪个是正确的取决于您的语言环境。
据我所知,.NET Framework中没有内置功能来查找这样的代码,因此您需要自己实现它。
此外(但您可能知道这一点),您需要注意如何实现此功能。 UTC偏移和时区代码之间不一定存在一对一的对应关系。例如,UTC-0700可以是美国山地标准时间(MST)或美国太平洋夏令时(PDT)。
答案 1 :(得分:4)
如果您使用r,它将为您提供RFC格式。它会帮助你吗?
String.Format("{0:r}", dt); // "Sun, 09 Mar 2008 16:05:07 GMT" RFC1123
如果可以帮助您,您也可以check this SO link。
答案 2 :(得分:2)
您需要准确找出所需的3个字母代码。例如,Europe/Paris
会给出什么?就个人而言,我会将数据转换为UTC并将其格式化,除非您确实需要保留时区信息。