DateTime.ParseExactを使用してDateTimeの文字列を解析するのに問題があります。DateTime文字列を解析する
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
//format = "mm/dd/yyyy";
format = "d";
try
{
result = DateTime.ParseExact(data+" 12:00:00 AM", format, provider);
}
dataは、「5/20/2009」という形式の日付がロードされた文字列変数です。私はちょうどそれがうまくいくかどうかを見るために偽の時間をタックしてみました。それは(タックがあってもなくても)でした。私も "g"形式指定子を使ってみましたが、うまくいきませんでした。私はいつも有効なDateTime文字列ではないという例外を受け取ります。それが働く唯一の日付は "12/20/2009"のようなものです( "MM"の部分に2桁が表示されます)
私はこのルーチンを1桁の月で使用することはできません! MSDNのMSDNの例は
6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
です。これは動作しません。私は間違っていることを理解していないだけです。私はまた、 "mm/dd/yyyy"や "MM/dd/yyyy"のような独自のフォーマット指定子を試しましたが、無駄です。
なぜ私はその文化を指定する必要がありますか?また、それはParseExactではありません。日付文字列がどのような形式から来ているのか正確に知っていますが、なぜ形式文字列を使用できないのでしょうか?これを使用して、そこにはいけないものを持ち込むことができます(日付フィールドの時刻を指定するのはいいえです) – Earlz
私の例をParseExactに変更しました。カルチャーを指定する必要があります。なぜなら、カルチャー固有の方法で(つまり、en-US形式で)入力内容を解析したいと言うからです。 – dtb
さて、私は不変量が米国を意味すると思った。..ありがとう! – Earlz