2011-09-12 56 views
3

我編寫了代碼從服務器獲取日期和時間,而不是從客戶端系統獲取日期和時間。我這樣寫...要獲取服務器日期和時間

DateTime dt = new DateTime(); 
dt = DateTime.Now; 

這是正確的代碼?

+1

使用DateTime dt = DateTime.Now代替。 –

+0

@Srinivas:一旦編譯器完成它,我會說很少或沒有區別...! – jadarnel27

+0

你打算如何使用DateTime?通常在服務器上,您通常希望使用'DateTime.UtcNow'來避免在比較DateTime時與時區和夏時制時間相關的問題,因此您稍後可以在瀏覽器上向用戶展示時轉換爲本地時區。 –

回答

3

調用DateTime構造函數是沒有必要的。使用這個來代替:

var dt = DateTime.Now; 

(這相當於,雖然略少羅嗦,比DateTime dt = DateTime.Now

+2

'DateTime.Now'不是一種方法。 –

+0

糟糕。謝謝,Waqas。 –

+0

這仍然是客戶端時間不是服務器。 – htm11h

1

是,使用DateTime.Now獲取所在的機器程序駐留在當前日期和時間(在ASP.NET的情況下服務器)。

1

你可以使用:

DateTime time = DateTime.Now;    
string format = "MMM ddd d HH:mm yyyy"; 

var dt = time.ToString(format); 

使其美觀。 您可以格式化用:

MMM  display three-letter month 
ddd  display three-letter day of the WEEK 
d  display day of the MONTH 
HH  display two-digit hours on 24-hour scale 
mm  display two-digit minutes 
yyyy display four-digit year 

當然你也可以從谷歌使用NTP源的命名空間。這是你可以下載的一些來源: http://www.google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#GawBxmf1je8/NTP/NtpClient.cs&q=ntp%20lang:c%23&l=34

+2

我需要再說一遍! 'DateTime.Now'不是一種方法。 –

+0

對不起兄弟,打字速度。 – ApolloSoftware