-2

私はこの質問が以前に尋ねられ、さまざまな方法を使用して解決されたことを知っています。

値を文字列からDateTimeに変換しています。

プロジェクト全体を通して、同じCultureInfoを使用しました。すべての文字列は、Convert.ToDateTime()を使用して日付に変換されましたが、変換を拒否するテキストフィールドが1つあります。

私が試してみました:

string date = "27/02/2013";
string startdated = (Convert.ToDateTime(date)).ToString("yyyy/MM/dd");

(日時に変換し、必要な形式でstingに戻します。これは他のすべてで正常に機能します)

Datetime dt = Convert.toDateTime(date); doesn't work 
DateTime.ParseExact(date, "yyyy/MM/dd", format); doesn't work

そして、すべて同じエラー「文字列が有効な日時として認識されませんでした。」が表示されます。ajaxカレンダーエクステンダー(CalendarExtender.Format = "dd / MM / yyyy"は表示目的で実行されます)を使用してテキストボックスから日付値を受け取ります。これは他の場所でも機能します。つまり、表示用の "dd / MM/yyyy"と"yyyy/ MMプロシージャの場合は/dd")。ただし、この最終値は変更されません。すべては外部サーバーなしで私のマシンを介して行われます

4

2 に答える 2

4

入力文字列は、DateTime.ParseExact を提供する形式と同じ形式ではありません。

これが機能するために

DateTime.ParseExact(date, "yyyy/MM/dd", format); 

日付は年/月/日の形式で入力する必要があります。しかし、あなたの文字列は日/月/年です。

これはうまくいくはずです。

string date = "27/02/2013";
DateTime parsedDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture); 
于 2013-02-27T10:41:24.543 に答える
3

あなたの日付はdate = "27/02/2013";で、現在の形式( DateTime.ParseExact)は です"yyyy/MM/dd"。次のようになります:

"dd/MM/yyyy"

したがって、次のコードは機能するはずです。

string date = "27/02/2013";
DateTime dt = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);

"d/M/yyyy"1 桁または 2 桁の日付/月を処理する形式を使用することもできます。

于 2013-02-27T10:41:24.183 に答える