如何获取远程计算机时间

byyt 2010-02-21 10:48:46
如下需求:
一台机器去获取另一台机器的日期、时间(精确到秒)、时区。
目标机器为一台只有windows2003系统的机器,不允许安装其他任何插件和服务。

我试过用 net time 但是只能精确到分钟,而且无法找到目标机器的时区。

各位有好的解决方案请共享一下,谢谢先了。
...全文
978 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
byyt 2010-02-23
  • 打赏
  • 举报
回复
TO:lzsh0622
[DllImport("kernel32.dll")]
应该是对本地的吧,我可以用它来改变本地的时区,但是如何取得远程计算机的时区呢?
我用[DllImport("netapi32")]中的NetRemoteTOD 来取时间,但是没有找到取时区的方法.
lzsh0622 2010-02-23
  • 打赏
  • 举报
回复
引用 18 楼 byyt 的回复:
TO:lzsh0622
[DllImport("kernel32.dll")]
应该是对本地的吧,我可以用它来改变本地的时区,但是如何取得远程计算机的时区呢?
我用[DllImport("netapi32")]中的NetRemoteTOD 来取时间,但是没有找到取时区的方法.


不能主动取时区,可以让远程主机,用远程主机本地的API取得时区,通过数据库媒介或通讯方式传过来。
影子_爱人 2010-02-22
  • 打赏
  • 举报
回复
我是来学习的

路过
limii 2010-02-22
  • 打赏
  • 举报
回复
up回复内容太短了!
sxmonsy 2010-02-22
  • 打赏
  • 举报
回复
我是来接分的......
缭绕飘渺 2010-02-22
  • 打赏
  • 举报
回复
good good study,day day up
厉害啊
lzy75927 2010-02-22
  • 打赏
  • 举报
回复
学习,学习,学习,学习
byyt 2010-02-22
  • 打赏
  • 举报
回复
哦,还有GetTimeZoneInformation,我试试能否找到远程计算机的时区.
wangyue4 2010-02-21
  • 打赏
  • 举报
回复
用socket可以吧,发一个获取时间的命令。服务器接到命令后就new一个当前的datetime。把它转成字符串再转成byte[]发回客户端,客户端再转换一下
狂想者 2010-02-21
  • 打赏
  • 举报
回复
路过,顶一下,学习中。。。。。
cymandhxl 2010-02-21
  • 打赏
  • 举报
回复
good good study,day day up
guyehanxinlei 2010-02-21
  • 打赏
  • 举报
回复
学习一下,简单的问题看来不容易.
lzsh0622 2010-02-21
  • 打赏
  • 举报
回复
引用 7 楼 byyt 的回复:
项目是Winform的,以上的方法我都有考虑过,现在是用api去取远程服务器的时间.
目前唯一一个遗留问题,如何取得远程计算机的时区.



可以继续用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;
}

byyt 2010-02-21
  • 打赏
  • 举报
回复
先谢谢各位.
项目是Winform的,以上的方法我都有考虑过,现在是用api去取远程服务器的时间.然后在更新本地时间.
目前唯一一个遗留问题,如何取得远程计算机的时区.
Lucky_6Q 2010-02-21
  • 打赏
  • 举报
回复
引用 2 楼 wuyq11 的回复:
http://topic.csdn.net/u/20081211/19/860d1e90-1ae1-4fc7-b3d3-11338a6cba68.html
推荐
lzsh0622 2010-02-21
  • 打赏
  • 举报
回复
winform 用2楼的链接
webform web直接发送
Sweet-Tang 2010-02-21
  • 打赏
  • 举报
回复
很简单
如果远程服务器上面安装了SQL数据库
可以用
select getdate()
tmoonlight 2010-02-21
  • 打赏
  • 举报
回复
lz是要做winform的还是web的? web的超级容易 客户端var today=new Date(); 然后让浏览器把today的值发送给服务端就行了,post提交也行 ajax提交也行 随你用)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧