我想将以下日期和时间格式转换为SQL日期和时间 2016年4月7日星期四06:30:00 GMT + 0530(印度标准时间) 任何人都有想法谢谢。
答案 0 :(得分:1)
由于您的字符串值为UTC Offset,我会将其解析为DateTimeOffset
而不是DateTime
,因为可以保留偏移部分。
但DateTime
和DateTimeOffset
都不保留时区信息,您应该使用GMT
和(India Standard Time)
部分作为字符串文字分隔符。
var s = "Thu Apr 07 2016 06:30:00 GMT+0530 (India Standard Time)";
var dto = DateTimeOffset.ParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz '(India Standard Time)'",
CultureInfo.InvariantCulture);
现在您的DateTimeOffset
为{07.04.2016 06:30:00 +05:30}
。
我会在SQL Server中将此dto
作为datetimeoffset
类型列插入(当然,parameterized query),因为它也会保存偏移部分。
+---------------------------+
| Time zone offset range |
+---------------------------+
| -14:00 through +14:00 |
+---------------------------+
答案 1 :(得分:-1)
如果您的输入是字符串,则需要开始解析特定文化的日期:
DateTime dt = DateTime.ParseExact(inputString, System.Globalization.CultureInfo("<your_culture>"));
其中<your_culture>
是您所在国家/地区的多个文化名称之一(请参阅http://www.csharp-examples.net/culture-names/)
然后你可以把日期作为SQL兼容的字符串,包含简单的引号:
string sqlDate = dt.ToString("'yyyy-MM-dd HH:mm:ss'");