如下需求:
一台机器去获取另一台机器的日期、时间(精确到秒)、时区。
目标机器为一台只有windows2003系统的机器,不允许安装其他任何插件和服务。我试过用 net time 但是只能精确到分钟,而且无法找到目标机器的时区。各位有好的解决方案请共享一下,谢谢先了。

解决方案 »

  1.   

    用socket可以吧,发一个获取时间的命令。服务器接到命令后就new一个当前的datetime。把它转成字符串再转成byte[]发回客户端,客户端再转换一下
      

  2.   

    http://topic.csdn.net/u/20081211/19/860d1e90-1ae1-4fc7-b3d3-11338a6cba68.html
      

  3.   

    lz是要做winform的还是web的? web的超级容易 客户端var today=new   Date();  然后让浏览器把today的值发送给服务端就行了,post提交也行 ajax提交也行 随你用)
      

  4.   

    很简单
    如果远程服务器上面安装了SQL数据库
    可以用
    select getdate()
      

  5.   

    winform  用2楼的链接
    webform  web直接发送
      

  6.   

    先谢谢各位.
    项目是Winform的,以上的方法我都有考虑过,现在是用api去取远程服务器的时间.然后在更新本地时间.
    目前唯一一个遗留问题,如何取得远程计算机的时区.
      

  7.   

    可以继续用api做
    [DllImport("kernel32.dll")]
    public static extern int GetTimeZoneInformation(ref TIME_ZONE_INFORMATION lpTimeZoneInformation);[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public struct TIME_ZONE_INFORMATION
    {
        public long Bias;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public string StandardName;
        public SYSTEMTIME StandardDate;
        public long StandardBias;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public string DaylightName;
        SYSTEMTIME DaylightDate;
        public long DaylightBias;
    }
      

  8.   

    good good study,day day up
      

  9.   

    good good study,day day up
    厉害啊
      

  10.   

    哦,还有GetTimeZoneInformation,我试试能否找到远程计算机的时区.
      

  11.   

    TO:lzsh0622
    [DllImport("kernel32.dll")]
    应该是对本地的吧,我可以用它来改变本地的时区,但是如何取得远程计算机的时区呢?
    我用[DllImport("netapi32")]中的NetRemoteTOD 来取时间,但是没有找到取时区的方法.