我对C#很陌生,我正在尝试练习。但是用这种方法,时间和日期信息只有一次我认为是因为返回。在这种情况下我该怎么办?
private void startBtn_Click(object sender, EventArgs e)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Elapsed += timer_Elapsed;
timer.Start();
}
public string google_date()
{
var myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://google.com");
var response = myHttpWebRequest.GetResponse();
string todaysDates = response.Headers["date"];
return DateTime.ParseExact(todaysDates, "ddd, dd MMM yyyy HH:mm:ss 'GMT'", CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.AssumeUniversal).ToString();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//google_date();
Console.WriteLine("Google Date Info: " + google_date().ToString());
}
1条答案
按热度按时间nue99wik1#
您需要稍微修改代码。
1.不要在一个时间间隔内两次调用
google_date()
,而是将日期值存储在一个可以再次访问的变量中。1.您需要替换
WebRequest.Create
函数,因为它已过时请改用HttpClient
1.返回相对于
UTC
的日期值。1.如果您想要在UI控件中显示值,可以使用下列范例来避免
cross-thread operation not valid
例外状况。范例:
输出: