我如何格式化日期时间或时区/的TimeZoneInfo显示三个信吗?(How do I format

2019-07-21 04:10发布

我与对,我不一定有与没有工作,一个奇特的日期时间格式调用规范工作。

在处理时间,一个OFX(1而不是2)的日期时间必须在这样的格式冲压(或者DTCLIENT或DTSERVER):
20071015021529.000

然而,在实施例中,示出:

20071015021529.000[-8:PST]    

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

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

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

这三个字母时区代码是在那里我绊倒了。 有没有一种简单的方法在.net中得到这个,还是我去写出来的代码输出和分析我需要什么?

Answer 1:

你需要找出它需要到底是哪3个字母的代码。 什么会Europe/Paris给出,例如? 就个人而言,我将数据转换为UTC和格式化这样的说法,除非你确实需要保留的时区信息。



Answer 2:

这三个字母时区代码不能跨国家唯一的,没有完全标准化。 例如,“CST”可以成为“中部标准时间(美国)”或“中国标准时间”的缩写。 这是正确的取决于你的语言环境。

据我所知,没有内置在.NET Framework中查找这样的代码功能,所以你需要自己实现它。

另外(但你可能知道这一点),你需要小心你如何实现这个功能。 有不一定UTC偏移和时区码之间的一对一的对应。 例如,UTC-0700可能是要么美国山地标准时间(MST) 美国太平洋夏令时间(PDT)。



Answer 3:

如果要使用[R,它会给你RFC格式。 它会帮助你。

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

您还可以检查此链接SO ,如果它可以帮助你。



文章来源: How do I format DateTime or TimeZone/TimeZoneInfo to display Three letters?