2015-12-22 56 views
0

我有一個ASPX應用程序,我已經開始應用本地化,旨在使用戶能夠切換語言。 意外的更改使得當用戶現在使用網頁時,它們的日期時間格式正在服務器端使用。在過去這不是一個問題。 我不知道最好的辦法是解決這個問題。aspx本地化本地資源日期時間格式

cmd.CommandText = "Insert into dbo.Hours (Username,LogIn,LogOut,TotalHours,Char,Game,Server1,Server2,S1Plat,S2Plat) VALUES (@uname, @in, @out, @totlH, @char, @game, @S1, @S2, @S1Plat, @S2Plat)"; 
cmd.Parameters.AddWithValue("@in", DateTime.Now); 
cmd.Parameters.AddWithValue("@out", DateTime.Parse("1/31/1753")); 
cmd.Parameters.AddWithValue("@char", drop_vet.SelectedValue); 
cmd.Parameters.AddWithValue("@game", drop_game.SelectedValue); 

if (chk_duties.Checked) 
{ 
     cmd.Parameters.AddWithValue("@S1", txt_duties.Text); 
     cmd.Parameters.AddWithValue("@S2", "Assigned by: " + drop_gm.Text); 
     cmd.Parameters.AddWithValue("@S1Plat", "N/A"); 
     cmd.Parameters.AddWithValue("@S2Plat", "N/A") 
} 
else 
{ 
     cmd.Parameters.AddWithValue("@S1", drop_server1.SelectedValue); 
     cmd.Parameters.AddWithValue("@S2", drop_server2.SelectedValue); 
     cmd.Parameters.AddWithValue("@S1Plat", drop_platformS1.SelectedValue); 
     cmd.Parameters.AddWithValue("@S2Plat", drop_platformS2.SelectedValue); 

     cmd.CommandText += "; Update dbo.Servers SET LastVisit = @lv where platform = @s1plat and number = @s1Num and Game = @game"; 
     cmd.CommandText += "; Update dbo.Servers SET LastVisit = @lv where platform = @s2plat and number = @s2Num and Game = @game"; 
     cmd.Parameters.AddWithValue("@lv", DateTime.Now); 
     cmd.Parameters.AddWithValue("@s1Num", drop_server1.SelectedValue.Split(' ')[0]); 
     cmd.Parameters.AddWithValue("@s2Num", drop_server2.SelectedValue.Split(' ')[0]); 
} 
cmd.ExecuteNonQuery(); 

conn.Close(); 

目前,在服務器上使用的時候,或者是在美國區域設置的計算機上使用時,它完美的罰款。但是,當計算機處於荷蘭語(例如)語言環境中時,此功能將在DateTime.Parse上失敗,並以錯誤的格式表示。

作爲一個quickfix我把我的應用程序改回到我開始應用本地化之前,目前即時通訊也害怕它可能使用本地機器的時區,而不是服務器時間,但我還沒有能夠驗證這一點。有人對我有一些建議嗎? Bassicly即時嘗試在aspx上使用多種語言(即時使用resx文件),而無需更改其他區域設置的東西

+0

經過進一步測試,它似乎在谷歌瀏覽器崩潰,並在Mozilla Firefox它does not。 – Kage

回答

0

我設法解決了這個問題,而不是使用上述方法。

cmd.Parameters.AddWithValue("@out", DateTime.ParseExact("01/31/1753 00:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture));