1

米国の顧客から使用する必要があるソフトウェアを開発しています。
私のPC(イタリア語)で私は使用します

CultureInfo cultureUS = CultureInfo.GetCultureInfo("en-US");
DateTime dt = DateTime.Parse(s, cultureUS);

これはSat, Sep 8, 2012のような文字列で機能します。
しかし、私のソフトウェアが顧客のPCで使用されると、彼はエラーを受け取ります

文字列は有効な DateTime として認識されませんでした

なんで?どうしたの?
どこでも機能させるには何を使用すればよいですか?

編集:
混乱を避けるために:私はこれらの種類の日付をWebとファイルの両方から読み取り、それらを解析して(その形式で)使用して他のファイルを書き込む必要があります。
そのため、それらを「標準」形式に変換してから再度変換する必要はないと考えました。その形式から使用して、ファイルに直接書き込みたいと思います...
そして、これが私が決めた理由です私が書いたコードを使用してください....

4

2 に答える 2

0

私はローカライズに慣れていませんが、おそらくこれでうまくいくかもしれません:

DateTime.Parse(date, new DateTimeFormatInfo()
                         { LongDatePattern = "ddd, MMM dd, YYYY" });

あなたの文字列形式で投げた文字列に対してはうまくいっているようですが、さまざまな文化でテストしていません。

于 2012-10-17T15:54:25.783 に答える
0

あなたは見てみたいかもしれませんDateTime.ParseExact

CultureInfo cultureInfo = CultureInfo.GetCultureInfo("en-US");
DateTime dateTime = DateTime.ParseExact(s, "D", cultureInfo);

編集

正確な日時形式については、次を試すことができます。

DateTime dateTime = DateTime.ParseExact(s, "ddd, MMM dd, yyyy", cultureInfo);
于 2012-10-17T15:06:27.527 に答える