簡體   English   中英

如何在不使用系統時間的情況下在C#中獲取當前本地DateTime

[英]How do you get current local DateTime in c# without using system time

我正在嘗試獲取實際的當前本地DateTime(在客戶端),即使用戶已將系統DateTime更改為其他內容。

我用了這個:

DateTime localDateTime = DateTime.Now;

但它會查看系統時間,因此,如果用戶更改系統DateTime,我將無法獲得實際的DateTime。

我還考慮過獲取utc時間並進行轉換,但這也要考慮系統時間以計算UTC時間。

如果無法完成此操作,是否可以獲取Web服務器的DateTime?

這樣做的原因是要記錄何時更新/創建某些記錄,並且我試圖避免用戶可以通過更改系統時間來操縱該時間的情況。

任何幫助將不勝感激。

由於它是一個Web應用程序 ,因此所有后端代碼都將托管在您的服務器中,這意味着您可以完全控制那里的時區。

您不需要也不必在乎從客戶端傳遞的時區,因為您永遠無法假設它會可靠。

另一件事是,如果您不小心,Web服務器的時區可能與數據庫服務器所使用的時區不同(我之前已經遇到過)。 所以這是最佳實踐

最佳做法 :在任何地方都使用UTC時區,並在需要時轉換為本地時區。

如果您想在客戶端花時間,則根本不用C#。 您擁有的代碼只能在Web服務器上運行。 客戶端計算機上永遠不會運行ASP.Net MVC中的C#代碼。

要在客戶端獲得時間,您必須從javascript或3rd party插件獲得時間。 無論哪種情況,您仍然可能依賴通過HTTP協議提交的數據,該協議很容易在瀏覽器外部進行操作。 如果客戶真的要騙你,還有什么可以做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM