我从服务器本机 (C++) 应用程序获得 UTC 格式的 FILETIME 结构。在托管(C#)客户端上,我需要将其显示为本地时间的客户端(!)。我是否需要连同有关服务器时区的 FILETIME 传输信息来完成此操作?或者此类信息已经包含在 UTC 格式的 FILETIME 中?
问问题
11089 次
3 回答
7
描述
您可以使用将 UTC DateTime 转换为本地时间TimeZoneInfo
样本
TimeZoneInfo.ConvertTimeFromUtc(YourDateTime, TimeZoneInfo.Local);
如果您知道名称,则可以将 UTC DateTime 转换为任何时区。例如。
TimeZoneInfo.ConvertTimeFromUtc(YourDateTime,
TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));
更多信息
于 2011-12-23T09:35:53.137 回答
0
create a class
public class TimeConverter
{
public static DateTime ConvertToLocalTime(DateTime utcTime, string timeZoneId)
{
if (string.IsNullOrEmpty(timeZoneId))
{
return utcTime;
}
return TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTime, timeZoneId);
}
}
In controller use TimeConverter
TimeConverter.ConvertToLocalTime(Date, yourTimeZone));
于 2011-12-23T09:44:10.610 回答
0
我不知道您的结构是什么,但是如果您可以将其转换为标准时间字符串,则 DateTime 类将对其进行解析。然后只需使用 ToLocalTime 方法。
DateTime time = DateTime.Parse(FILETIME.ToString());
time.ToLocalTime();
于 2013-11-07T18:18:25.643 回答