範圍工作:DateTime.TryParseExact僅在「單向」
我一直在試圖建立一個super-tolerant
DateTime.Parse套路,所以我決定給最「廣泛使用」格式化嘗試更好了解format masks
。
問題:
我已定義的特定格式(字符串),其餘爲myDate.ToString(format)
使用,而且可以創造奇蹟。問題是,如果我得到相同的字符串(結果爲.ToString(format)
操作),並將其反饋回DateTime.TryParseExact (...)
,則會失敗。
代碼/測試:
System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
// Defining Format and Testing it via "DateTime.ToString(format)"
string format = "MM/dd/yyyy HH:mm:ss tt";
string dtNow = DateTime.Now.ToString (format);
Console.WriteLine (dtNow);
// Trying to Parse DateTime on the same Format defined Above
DateTime time;
if (DateTime.TryParseExact (dtNow, format, provider, System.Globalization.DateTimeStyles.None, out time))
{
// If TryParseExact Worked
Console.WriteLine ("Result: " + time.ToString());
}
else
{
// If TryParseExact Failed
Console.WriteLine ("Failed to Parse Date");
}
輸出爲:"Failed to Parse Date".
問:
我爲什麼可以使用format
字符串格式化某個日期爲文本,但我不能使用相同的format
將字符串反饋回日期對象?
編輯:
我已經加入我的方法的一部分this example,我想知道爲什麼「ParseDate」方法未能返回正確的日期,因爲「字符串」是在正確的格式。
什麼是您的'CurrentCulture'? –
嘗試'string dtNow = DateTime.Now.ToString(format,provider);'轉換爲字符串時添加文化。 –
通過'pt-BR'(葡萄牙語(巴西))確認失敗。 –