如果我写Datetime.Now;
.net说它是
2/23/2015 5:24:41 PM
但如果我将计算机的日历更改为2月16日。它说:
2/16/2015 5:24:41 PM
我怎么能对C#说你必须得到全球时间而不是我的电脑时间?
Datetime.UtcNow;
答案 0 :(得分:2)
以下是可用于从 NIST Internet Time Service检索时间的代码示例。
var client = new TcpClient("time.nist.gov", 13);
using (var streamReader = new StreamReader(client.GetStream()))
{
var response = streamReader.ReadToEnd();
var utcDateTimeString = response.Substring(7, 17);
var localDateTime = DateTime.ParseExact(utcDateTimeString, "yy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
}
答案 1 :(得分:0)
你不能(使用标准.NET)
' DateTime.UtcNow'某些回复建议(根据MSDN):
获取一个DateTime对象,该对象在此计算机上设置为当前日期和时间,表示为协调世界时(UTC)。
你必须找到一个在线时间提供者并挂钩它。
见这里:Free Rest API to get current time as string (timezone irrelevant)