在谷歌搜索时,我没有看到任何答案,所以很可能我问的是一个愚蠢的问题,但这是!
我想调用api来获取我的云服务认为是什么时间,因为这似乎与我的本地服务器时间不同(数量很小,但数量很大)。
为了提供更多的上下文,我正在运行一个自动化测试,它需要检查在S3中创建了一个新的对象,这是测试系统运行的结果。根据amazon服务器时间,AWS为创建的对象指定了一个时间戳。我使用这个时间戳将对象与桶中的所有其他对象区分开来,因为它将是测试运行开始后唯一有时间的对象。不幸的是,amazon给出的时间在测试开始前几秒钟就结束了,因为我的服务器时间已经超过了amazon。
因此,如果我能够在测试开始时获得“云”启动时间,并比较一下我不会遇到这个问题。
编辑
如果有人有同样的问题,我在c#中使用了这个快速而肮脏的解决方法,这符合公认的答案的精神,但没有那么严格。
public async Task<DateTime> EstimateInternetTime()
{
var httpClient = new HttpClient();
var response = await httpClient.GetAsync("http://google.com");
return response.Headers.Date.Value.UtcDateTime;
}发布于 2017-02-02 17:41:45
没有“云时间”,因此无法确保时间戳与AWS中使用的时间戳完全匹配。
最好的方法是使用NTP将时钟同步到公共NTP服务器。
Amazon确实有自己的NTP服务器池,您可以使用:
在许多情况下,EC2实例已经配置为使用这些服务器。
请参阅有关在Linux服务器上配置NTP的AWS文档:
https://stackoverflow.com/questions/42008633
复制相似问题