我在智利有一个包含日期的字符串:“ 2018-04-23”
在我的国家/地区,撰写本文时,时区偏移为-4小时。
但是回到那个日期(4月23日),时区偏移量为-3小时。
包含这些任意偏移量更改的相关TimeZoneInfo
如下:
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time");
我的目标是将此日期(2018-04-23)保存在SQL Server中类型为DateTimeOffset
的列中
因此,该日期应另存为:“ 2018-04-23 00:00:00.000 -03:00”(通过使用Management Studio进行视觉检查)
如何以编程方式实现这一目标?
我尝试了以下操作:
var date = DateTime.Parse("2018-04-23");
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific SA Standard Time");
var utcDate = TimeZoneInfo.ConvertTimeToUtc(date, tzi);
var offset = tzi.GetUtcOffset(utcDate);
return ((DateTimeOffset)utcDate).ToOffset(offset);
但是...
提出相同问题的另一种方法是:
我有一个非标准格式的本地日期:“ 2018-04-23”
该位置的相关时区为:“太平洋SA标准时间”
我想使用ISO标准格式的相同日期:“ 2018-04-23 00:00:00.000 -03:00”
我该如何实现?
输入:“ 2018-04-23”和“太平洋标准时间”
输出:“ 2018-04-23 00:00:00.000 -03:00”