将字符串转换为带有时区的日期时间

时间:2015-09-03 08:26:20

标签: c# .net wpf datetime

我在TextBox中有这个值:

  var date = "2015-09-03" + TimeZoneInfo.Local.BaseUtcOffset

如何使用此值将其作为DateTime保存到数据库

2015-09-03+07:00 // with time zone offset information ,here the value can change by zone

1 个答案:

答案 0 :(得分:5)

您无法将其另存为DateTimeDateTime没有任何部分可以保持UTC偏移。

我会将其解析为DateTimeOffset(更好一点)并将其datetime.DateTime属性保存在timestring s = "2015-09-03+07:00"; DateTimeOffset dto; if (DateTimeOffset.TryParseExact(s, "yyyy-MM-ddK", CultureInfo.InvariantCulture, DateTimeStyles.None, out dto)) { Console.WriteLine(dto); } 类型中数据库中的列。

DateTime

DateTimeOffsetpublic static class AlternatingExtensions { public static bool IsAlternating<T>(this IList<T> list) where T : IComparable<T> { var diffSigns = list.Zip(list.Skip(1), (a,b) => b.CompareTo(a)); var signChanges = diffSigns.Zip(diffSigns.Skip(1), (a,b) => a * b < 0); return signChanges.All(s => s); } } 都是时区认知。这就是原因;