[英]DateTime.Parse works in c# console app but not asp.net
我編寫了一個C#控制台應用程序,經過所有處理,該程序將DateTime
輸出到磁盤。 它是這樣的:
writer.WriteLine(myDateTime)
。
使用以下內容讀回此DateTime
相同的控制台應用程序沒有問題:
DateTime.Parse(reader.ReadLine())
但是,在嘗試在單獨的Asp.Net
程序中使用以下代碼時,我收到一條錯誤消息,說我的string
不是有效的DateTime
,至少可以說是奇怪的。
StreamReader reader = new StreamReader(@"D:\InformerReports\Archive\ReliabilityData\StartTime.hist");
string dateString = reader.ReadLine();
return DateTime.Parse(dateString);
我已經檢查過並且它正在讀取的字符串是10/25/2016 12:00:00 AM
。 我也曾嘗試使用return DateTime.ParseExact(dateString, "dd/MM/yyyy hh:mm:ss tt",null)
但這會返回相同的錯誤。
我似乎無法理解為什么在一種情況下對同一文件執行的相同代碼在另一種情況下不起作用。 我將不勝感激。
我猜服務器的文化與您要測試的機器不同。
您必須使用的正確格式似乎是:
return DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt", null)
// 10/25/2016 12:00:00 AM
作為先前答案的補充。 為了避免跨客戶端的不同區域性,您可以在global.asax文件的Application_BeginRequest方法中設置站點區域性,如下所示:
Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR");
Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-FR");
這將對每個訪問該網站的用戶強制執行上述指定的區域性。
我不確定這樣做是否有弊端,但這過去解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.