|
|
1
2
定义“准确”?如果你不能信任系统日期,那么你需要从外部来源(即原子钟)获取时间。但是用户可能会阻止你的程序获取它(即拔下网线,用软件防火墙阻止你的时间查询)。
|
|
|
2
4
编辑 :这行得通,试试看:
|
|
3
2
无论您在本地获得什么日期/时间,都取决于当前系统的时间精度。如果你想要独立的准确时间,你需要从外部的时间web服务获取它,比如 Yahoo's Server Time . |
|
|
4
1
您可以在提供结果的服务器上实现一个非常简单的web服务或RESTful调用。只要您相信服务器的日期/时间是正确的,这就可以工作。 |
|
5
1
由于用户可以更改bios上的时间,因此您不能相信计算机会准确。 你唯一的另一个选择是要求他们能够访问互联网,然后你可以呼叫一个网络服务,然后拨打电话,但如果你想多疑,并限制他们知道多少,可以用RSA加密来加密,以验证你的服务是否提供了日期。 |
|
|
6
0
始终以UTC时间存储-您以后会省去很多麻烦。以UTC存储,并在需要计算时转换为您需要的任何当地时间,包括夏令时。 此外,如果存储中的时间不需要人类可读,您可以将其存储在Ticks中,以使其最不容易出错:
DateTimeOffset stampUtc=新的DateTimeOffset(长解析(滴答),时间跨度。零);
|
|
|
7
0
我相信美国海军维护着一组NTP服务器。查看: http://tycho.usno.navy.mil/ntp.html 如果你需要对当前时间进行超级安全、高弹性的访问,你需要对你正在运行的硬件进行一定程度的控制。毕竟,用户可以拔出他们的网线,欺骗网络上的IP地址,阻止端口和IP地址,更改他们的HOSTS文件,以及各种可能干扰网络请求的事情。 |
|
|
8
0
此外,要使用NTP,您可能需要看看这个。 How to Query an NTP Server using C#? |