2013-03-25 85 views
0

在MVC4 C#應用程序中,我嘗試將服務器時間轉換爲本地時間。它在本地運行,但在網站部署時不起作用。爲了測試,我在部署的站點上查了一些代碼結果。它們是:將DateTime轉換爲本地不工作

25.03.2013 04:39:31 - DateTime.Now 
25.03.2013 09:39:31 - DateTime.UtcNow 
25.03.2013 04:39:31 - DateTime.UtcNow.ToLocalTime() 
25.03.2013 09:39:31 - SpecifyKind(DateTime.UtcNow, DateTimeKind.Local) 
25.03.2013 04:39:31 - TimeZoneInfo.ConvertTimeFromUtc(DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc), TimeZoneInfo.Local) 
25.03.2013 04:39:31 - TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, TimeZoneInfo.Local.Id) 
25.03.2013 04:39:31 - TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.Local) 
25.03.2013 04:39:31 - TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local) 
25.03.2013 09:39:31 - TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Utc) 
Utc - DateTime.UtcNow.Kind 

在我的電腦上的時間,同時爲:

2013年3月25日13時39分31秒;

我認爲這取決於全球化。在配置文件中,我單獨嘗試了以下變體:

<globalization uiCulture="en-US"/>, 

    <globalization culture="az" uiCulture="az" />, 

    <globalization culture="auto" uiCulture="auto" />, 

    <globalization culture="az-Latn-AZ" uiCulture="az-Latn-AZ" />, 

    <globalization culture="en-US" uiCulture="en-US"/> 

但是,沒有任何變化。我的本地時區是(UTC + 04:00)巴庫和我在所有代碼中使用了DateTime.UtcNow。任何人都可以幫助我轉換服務器時間並顯示當地時間嗎?

回答

2

問題是您的網站使用它所在服務器的時間和時區。您的問題的解決方案是要麼在本地機器上更改服務器的日期時間(如果您有權這樣做)到本地時間。

如果您想使用代碼的解決方案,您必須使用時區將UTC時間轉換爲您的特定時區時間。此鏈接將幫助您:http://msdn.microsoft.com/en-us/library/bb397769.aspx

+0

我找到了解決方案,但是,當我輸入時,它可以工作,在這種情況下,日期選擇器不工作... – 2013-03-26 05:56:20

+0

您使用的日期選擇器? jQuery的UI日期選擇器或其他東西 – Devesh 2013-03-26 06:39:38

+0

是的jQuery的日期選擇器。我找不到真正的理由。因爲有時候,日期工作,日期選擇器不工作,並且時間反過來。在peresent datepicker工作,但ToLocalTime()方法不能正常工作。我使用 2013-03-26 09:27:25