0

文字列の日時への変換に関する問題を解決する例を見つけるために、Web を見回しています。

en-us (mm/dd/yyyy) をオランダのベルギー (dd/mm/yyyy) 日時に変換したいと思います。実用的な例を教えてください。

ご参考までに、Convert.ToDateTime、Parse、TryParse、ParseExact などを試しましたが、どれも機能していませんでした。この変換を行う例が本当に気に入っています。無駄なリンクはありません。


アップパテ

私が得るエラーは次のとおりです。文字列は有効な DateTime として認識されませんでした。私が試したこと:

----------------
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

これらのメソッド オーバーロードを使用します。

そしてそれらに aCultureInfo.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 に答える