将时区格式的datetime转换为本地日期时间

杰汉吉尔·海德尔(Jehangir Haider)

有人可以指出这个"20130913095509+1000"日期时间代表.NET中的哪种格式。

我可以用下面的代码来解析

string test= "20130913095509+1000";
DateTime parseDt = DateTime.ParseExact(test,
                    "yyyyMMddhhmmsszzzz",
                    CultureInfo.InvariantCulture);    

//For comparison 

string output= parseDt.ToString("yyyyMMddhhmmsszzzz"); 
//output= 20130913095509+10:00  

.NET中的Format"20130913095509+10:00"它们之间的区别是什么"20130913095509+1000"

马特·约翰逊·品特

一些东西:

  • 您最好将其解析为DateTimeOffset而不是DateTime这样,您正在使用的计算机的本地时区就不会影响解析行为,并且您无需担心DateTimeStylesor的疯狂DateTimeKind由于DateTimeOffset保留了您提供的偏移量,因此它将在从字符串到对象再到字符串的往返过程中保持不变。

  • zzzz根据文档,它不是有效的格式说明符它可能会出现由一些实现兑现,但什么是可能发生的是,zzzz被单独解释,后者被忽略。

  • 不幸的是,没有一个格式说明符用一个带冒号的符号,小时和分钟来表示偏移量。zzz是最接近的字符串,当使用进行格式化时会包含一个冒号ToString,但是使用进行解析时会将其视为可选的ParseExact因此,您可以zzz在格式字符串中使用,但必须:ToString调用后手动删除

放在一起:

string test = "20130913095509+0530";
DateTimeOffset dto = DateTimeOffset.ParseExact(test, "yyyyMMddHHmmsszzz", CultureInfo.InvariantCulture);
string output = dto.ToString("yyyyMMddHHmmsszzz").Remove(17,1);
Console.WriteLine(output);  //=>  20130913095509+0530

请注意,您使用的格式接近于ISO 8601 “基本”格式,但是该格式将包括T日期和时间部分之间的分隔符。如果可能的话,您应该考虑插入,以T使您的数据符合ISO 8601标准。

string test = "20130913T095509+0530";
DateTimeOffset dto = DateTimeOffset.ParseExact(test, "yyyyMMdd'T'HHmmsszzz", CultureInfo.InvariantCulture);
string output = dto.ToString("yyyyMMdd'T'HHmmsszzz").Remove(18,1);
Console.WriteLine(output);  //=>  20130913T095509+0530

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将GMT日期时间转换为本地时区日期时间

将UTC日期时间转换为带有时区的本地日期时间

使用时区将日期时间转换为 ISO 8601 日期时间格式

如何使用不同的时区Nodatime将UTC日期和时间转换为本地时间

将所有日期/日期时间元素转换为本地时区

在Python中将时区感知日期时间转换为本地时间

如何将多个日期格式的字符串转换为时区格式的时间戳

将 Linux 日期时间转换为 Windows 本地日期时间格式

将python datetime转换为时间戳并返回UTC仍使用本地时区

.NET Noda时间将特定时区的本地DateTime转换为UTC

在Javascript中使用UTC时区格式转换为本地时间

R-防止聚合函数将日期时区转换为本地时间?

如何将日期时间转换为本地用户特定时区

Django 自动将日期时间字符串转换为本地时区

将具有多个时区的大型数据集的本地日期时间转换为UTC

将字符串转换为 DateTime 格式而不将其转换为您的本地时间

将日期转换为本地时区而不移动日期

如何将日期时间从 ISO 格式转换为 UTC 时区?

将日期时间转换为特定时区但采用特定格式 c#

将DateTime转换为本地时间

将日期时间转换为本地python

将日期时间转换为ISO格式

将日期时间转换为不同的格式

将纪元时间转换为本地时区(以微秒为单位)

pytz-将UTC和时区转换为本地时间

阻止剑道将时间转换为本地时区

Powershell-将本地时间转换为其他时区

将UTC时间戳转换为熊猫本地时区问题

Moment JS:将TimeZone日期转换为本地时区