如何将mysql中的convert_tz()转换为ac#函数
问问题
48 次
2 回答
0
编辑:
使用 TimeZoneInfo 并通过它的 id 选择区域(这里是为什么以及如何检查它们)
重要 - 此数据不是静态的。随着世界各国政府做出改变,新的时区被引入 Windows。这最终就是为什么没有权威页面在文档中列出它们的原因。不要依赖任何硬编码的列表,而是自己调用 TimeZoneInfo.FindTimeZoneById(),或者使用 TZUTIL.EXE /L 来列出它们。下面的答案只是报告时数据的快照。不要从这里复制到您的应用程序中的硬编码!
代码示例:
var exampleTime = DateTime.SpecifyKind(DateTime.Now,DateTimeKind.Unspecified);
DateTime result = TimeZoneInfo.ConvertTime(exampleTime,
TimeZoneInfo.FindSystemTimeZoneById("Europe/London"),
TimeZoneInfo.FindSystemTimeZoneById("America/Denver"));
在有问题的更改之前:
具有此类参数的此方法没有这样的重载。
TimeZoneInfo.ConvertTime 重载 - 文档屏幕
来源:微软文档
于 2021-07-01T20:06:12.877 回答
0
可能有更清洁的方法,但我在自定义 TimeUtils 类中保留了一个使用 TimeZoneInfo 的辅助函数(搜索 MS 文档以找到您需要的特定 ID)
public static DateTime ConvertToMST(DateTime dt)
{
DateTime utc = dt.ToUniversalTime();
return TimeZoneInfo.ConvertTimeFromUtc(utc, TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time"));
}
于 2021-07-01T21:26:02.013 回答