2013-01-03 49 views
1

我想知道,在哪裏呢哪裏日期時間從asp.net獲取其數據/ C#

DateTime.Now; 

從中獲取其數據?

它從我的桌面上獲取數據嗎?實際上,當我在調試中觀察時,它確實如此。我將桌面時間改回了一個小時,而日期時間現在給了我完全相同的日期/時間。

我真正的問題是,當項目部署時這仍然適用嗎?我的網站會繼續從用戶PC獲取時間嗎?

這個問題的原因是,因爲我將使用會話變量,我想要在x分鐘後處置。如果datetime.now從用戶計算機獲得時間,那麼這將是一種安全問題。

在此先感謝您的回答。

+0

無論您部署應用程序,您都將獲得該位置的日期和時間。 「 – MMK

+2

」獲取設置爲此計算機上當前日期和時間的DateTime對象,表示爲本地時間。「 http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx –

+0

所以,基本上,它會從服務器得到我將部署該項目的日期時間? – Mana

回答

6

ASP.NET在服務器上運行。它在服務器處獲得時間。請注意,在開發過程中,服務器往往是恰好是「用戶的PC」,但這是巧合。

+0

實際上,時間到處都是一樣的(每當使用UTC時); p – leppie

+3

@leppie:不是'DateTime.Now',它是本地時間。 'DateTime.UtcNow'會,假設所有時鐘同步... –

+0

oki,我明白了。感謝您的快速回復。 – Mana

3

您的分析是正確的和錯誤的。 DateTime.Now會從運行代碼的機器獲取時間。我假設你在ASP腳本上有這樣的內容,當你部署它們時,它將在Web服務器上運行。所以時間應該是網絡服務器而不是用戶的個人電腦。

您可以從用戶PC通過客戶端腳本獲取時間;像JS一樣。

1

您需要保持您的服務器日期正確。由於您的代碼將在服務器上運行,您將繼續獲得正確的時間。更改客戶機日期不會影響服務器時間。你所有的代碼(服務器端代碼)都會得到正確的時間。

1

在asp.net或c#中DateTime.Now顯示應用程序運行的服務器的時間。