C# 从C+;检索时,时间减少了1in.NET+;班 在试图从C++结构中退出输入数据时,将其应用于C代码中,注意到小时减少了1,然后在.NET中转换为GMT+2时区。 我使用以下模块从C++读取时间:time.inl和wchar.h 当调用标准C++类来检索日期并在.NET CurraseCube中使用它时,发生的时间减少了1。它看起来像C++标准的日期和时间函数,将系统日期转换成某种格式,因此日期错误地发送到.NET类。我在Talkg中讨论了C++中的标准类类和.NET中的DATETime类,没有编写特定的代码,这就是为什么我不提供任何代码。

C# 从C+;检索时,时间减少了1in.NET+;班 在试图从C++结构中退出输入数据时,将其应用于C代码中,注意到小时减少了1,然后在.NET中转换为GMT+2时区。 我使用以下模块从C++读取时间:time.inl和wchar.h 当调用标准C++类来检索日期并在.NET CurraseCube中使用它时,发生的时间减少了1。它看起来像C++标准的日期和时间函数,将系统日期转换成某种格式,因此日期错误地发送到.NET类。我在Talkg中讨论了C++中的标准类类和.NET中的DATETime类,没有编写特定的代码,这就是为什么我不提供任何代码。,c#,c++,time,C#,C++,Time,我会尽量让我的问题更清楚,那就是以前有没有人遇到过这个问题。如果是,请分享您的发现,如果不是,请不要 非常感谢您的帮助从您的问题中,我不清楚您到底在问什么,但是……您可能观察到Win32和.NET中的时间处理之间存在差异,特别是在“夏令时”转换方面 对这个问题进行了较为详细的描述 检查一下,也许这就是困扰你的原因 当我通过Win32获取它们并在.NET中使用它们时,我提出了以下方法来调整时间: // If I read a time from a file with GetLastWri

我会尽量让我的问题更清楚,那就是以前有没有人遇到过这个问题。如果是,请分享您的发现,如果不是,请不要
非常感谢您的帮助

从您的问题中,我不清楚您到底在问什么,但是……您可能观察到Win32和.NET中的时间处理之间存在差异,特别是在“夏令时”转换方面

对这个问题进行了较为详细的描述

检查一下,也许这就是困扰你的原因

当我通过Win32获取它们并在.NET中使用它们时,我提出了以下方法来调整时间:

    // If I read a time from a file with GetLastWriteTime() (etc), I need
    // to adjust it for display in the .NET environment.
    internal static DateTime AdjustTime_Forward(DateTime time)
    {
        if (time.Kind == DateTimeKind.Utc) return time;
        DateTime adjusted = time;
        if (DateTime.Now.IsDaylightSavingTime() && !time.IsDaylightSavingTime())
            adjusted = time + new System.TimeSpan(1, 0, 0);

        else if (!DateTime.Now.IsDaylightSavingTime() && time.IsDaylightSavingTime())
            adjusted = time - new System.TimeSpan(1, 0, 0);

        return adjusted;
    }
方法名称中的“Forward”指的是Win32->.NET,而不是时间意义上的“Forward”。它假定输入时间参数是从类似于
DateTime.FromFileTimeUtc()
的地方获得的


此代码假定夏令时的班次为1小时。我不确定这是否适用于所有使用夏令时的地方