将日期时间格式从';2014-03-11T14:10:46+11:00;到';20140311141046+

本文关键字:46+11 20140311141046+ 2014-03-11T14 格式 时间 日期 | 更新日期: 2023-09-27 18:24:31

我正在获取格式为2014-03-11T14:10:46+11:00的dateTime值。我需要将其更改为20140311141046+11:00格式。

我现在使用的方法是:

private string changeDateFormat()
{
     DateTime dt = Convert.ToDateTime("2014-03-11T14:10:46+11:00");           
     return dt.ToString("yyyyMMddHHmmss");
}

它似乎运行得很好,但有一个陷阱。代替像CCD_ 3那样示出输出,输出为CCD_ 4。

转换为字符串时,我想我也需要通过时区。但我对如何做到这一点一无所知。

PS:这个+11:00是动态的,可以在输入中改变。请提出一个通用的解决方案/方法。

将日期时间格式从';2014-03-11T14:10:46+11:00;到';20140311141046+

由于将其解析为DateTime,因此丢失了偏移部分。

我会将它解析为DateTimeOffset而不是DateTime,并使用K格式说明符和它的格式类似;

var str = "2014-03-11T14:10:46+11:00";
var dto = DateTimeOffset.Parse(str);
return dto.ToString("yyyyMMddHHmmssK");

返回

20140311141046+11:00