簡體   English   中英

DateTime奇怪的行為

[英]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.

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