将utc时间和偏移量转换为DateTime

dev*_*per 5 c# datetime

我有一个保存在数据库中的日期时间(以utc为单位),我也知道以下格式的utc偏移量.

-03:00:00
Run Code Online (Sandbox Code Playgroud)

如何将其转换为 DateTime

Cra*_*gTP 14

将"偏移"应用于DateTime已有的最简单方法是创建一个TimeSpan保持偏移值的结构,然后简单地将偏移"添加"到原始DateTime值.

例如:

DateTime utcDateTime = DateTime.Parse("29 July 2010 14:13:45");
TimeSpan offSet = TimeSpan.Parse("-03:00:00");
DateTime newDateTime = utcDateTime + offSet;
Console.WriteLine(newDateTime);
Run Code Online (Sandbox Code Playgroud)

这导致以下输出:

29/07/2010 11:13:45

这是原始时间(2010年7月29日14:13:45)减3小时(偏移--03:00:00).

请注意,此技术仅使用您的DateTime值执行简单算术,并且不考虑任何时区.

  • 请注意,当字符串中包含"+"符号时,Parse会失败.所以使用' - '标志或根本没有标志!http://msdn.microsoft.com/en-us/library/se73z7b9%28v=vs.110%29.aspx (2认同)