如何将DateTime格式化为GMT偏移量的字符串

时间:2016-06-13 19:21:57

标签: c# datetime

我有一个小型的c#windows表单应用程序,它使用来自其他应用程序的Web服务并提交记录。

此Web服务需要使用以下格式接收日期时间值:

const

"2016-10-10T23:00:00-03:00"是GMT(阿根廷)的地方

我有2个日期时间选择器,我选择日期和时间,然后我将信息连接到具有所需格式的字符串中。

所以我需要以Date格式将此值发送到WebService。 然后我尝试了以下内容:

-03:00

这里的问题是String sFinalDate ="2016-10-10T23:00:00-03:00"; Date dFinalDate= new DateTime(); dFinalDate=Covert.ToDateTime(sFinalDate); 保存以下格式: dFinalDate

如何将我的字符串转换为具有我需要的格式的日期字段?

谢谢!

1 个答案:

答案 0 :(得分:0)

你描述了Round-trip Format Specifier的一种卑鄙形式。

标准用法的示例如下所示:

// this emits a string that looks like: 2016-06-13T15:30:55.2216814-04:00 
var dt = DateTime.Now.ToString("o");  // <-- round-trip format

您的要求是没有毫秒的格式,因此您需要使用这样的自定义格式说明符:

// this gives you a date string that looks like: 2016-06-13T15:30:55-04:00
var dt = DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssK");

有关往返格式的更多信息:https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Roundtrip