0

我一直在网上寻找一个可以解决字符串转换为日期时间问题的示例。

我想将 en-us (mm/dd/yyyy) 转换为荷兰比利时 (dd/mm/yyyy) 日期时间。你能给我一个工作的例子吗?

为了您的信息,我尝试了 Convert.ToDateTime、Parse、TryParse、ParseExact 等,但没有一个有效。我真的很喜欢一个可以进行这种转换的例子,没有无效的链接。


更新

我得到的错误是:字符串未被识别为有效的日期时间。我试过的:

----------------
string str = "02/20/2012";
DateTime dt = Convert.ToDateTime(str);
---------------------
IFormatProvider theCultureInfo = new System.Globalization.CultureInfo("nl-BE", true);
DateTime theDateTime = DateTime.ParseExact(deliveryDate, "dd/mm/yyyy", theCultureInfo);
Console.WriteLine(dt);
----------------------
var parsed = DateTime.ParseExact("02/20/2012","dd/mm/yyyy", null);
---------------

dateValue = DateTime.Parse(dateString, new CultureInfo("nl-BE", false));

以及其他一些我现在不记得的例子。但所有的领导无处可去。

4

2 回答 2

8

使用这些方法重载:

并将 a 传递CultureInfo.DateTimeFormat给他们:

string enUsDateString = "12/31/2012";
IFormatProvider enUsDateFormat = new CultureInfo("en-US").DateTimeFormat;

DateTime date = DateTime.Parse(enUsDateString, enUsDateFormat);

IFormatProvider nlBeDateFormat = new CultureInfo("nl-BE").DateTimeFormat;
string nlBeDateString = date.ToString(nlBeDateFormat);

但是,这也将包括输出中的时间分量。如果您不希望这样,请尝试例如:

IFormatProvider nlBeDateFormat = new CultureInfo(…).DateTimeFormat.ShortDatePattern;
//                                                                ^^^^^^^^^^^^^^^^^
于 2012-08-17T18:28:23.657 回答
1

这对我来说很好:

DateTime date = 
DateTime.ParseExact("20122018", "dd/MM/yyyy", 
                   CultureInfo.CurrentCulture);
于 2019-01-02T00:10:06.017 回答