[英]DateTime weird behaviour
我創建了一個C#WinForms應用程序。
在我的電腦上,以下工作:
DateTime.ParseExact("13/05/2012", "dd/mm/yyyy", null)
但這不是:
DateTime.Parse("13/05/2012")
在我客戶的電腦上,它是相反的。 這有效:
DateTime.Parse("13/05/2012")
但這不是:
DateTime.ParseExact("13/05/2012", "dd/mm/yyyy", null)
錯誤說明:
String was not recognized as a valid DateTime.
沒有設法在互聯網上找到有關此問題的任何信息。 該程序使用.Net Framework 4,是一個x86應用程序。 我運行Windows 8 x64,客戶端運行Windows 7 x64。
有沒有人知道為什么會這樣?
謝謝。
您在不同計算機上獲得不同行為的原因是因為它們運行的是不同的文化。 嘗試在兩台計算機上運行這行代碼,看看它是否輸出了不同的東西:( ideone)
System.Console.WriteLine(CultureInfo.CurrentCulture);
輸出(例子):
en-US
文化指定了許多東西,其中一個是日期分隔符。 如果您想要所有用戶的一致行為,請嘗試指定文化:( ideone)
CultureInfo cultureInfo = CultureInfo.InvariantCulture; // or whatever you prefer
DateTime dateTime = DateTime.ParseExact("13/05/2012", "dd/MM/yyyy", cultureInfo);
上面的代碼假設您有以下using語句:
using System;
using System.Globalization;
小心; 在自定義日期和時間格式字符串中 , mm
說明符表示“分鍾”,而不是“月”。 你需要使用MM
幾個月。
DateTime.ParseExact("13/05/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.