2

我从服务器本机 (C++) 应用程序获得 UTC 格式的 FILETIME 结构。在托管(C#)客户端上,我需要将其显示为本地时间的客户端(!)。我是否需要连同有关服务器时区的 FILETIME 传输信息来完成此操作?或者此类信息已经包含在 UTC 格式的 FILETIME 中?

4

3 回答 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 回答