将日期时间格式从"2014-03-11T14:10:46 + 11:00"更改为"20140311141046 + 11:00"

Mah*_*din 1 .net c# datetime

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

我现在使用的方法是:

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

它似乎工作得很好,但有一个问题.输出是20140311141046+11:00,而不是显示 输出20140311084046.

我想在转换为字符串时我也需要传递时区.但我对如何做到这一点一无所知.

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

Son*_*nül 6

因为你解析它DateTime丢失了偏移部分.

我会解析它DateTimeOffset而不是DateTime使用K格式说明符,格式如;

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

回报

20140311141046+11:00
Run Code Online (Sandbox Code Playgroud)