2

DateTime現在、Oracleデータベースから次の形式のアイテムを読み取っていますdd/mm/yyyy hh:mm:ssが、次のように保存する必要がありますyyyy-mm-dd hh:mm:ss

私は2つのアプローチを試しました。私が最初に試したのは、日付の文字列バージョンをパーツに分割し、それを再構成して、希望する出力を提供することです。ただし、これをDateTimeオブジェクトに変換すると、元の形式に戻ります。コードは次のとおりです。

public static DateTime FormatDateTimeForPDB(string dateTimeString)
{
    DateTime formattedDateTime;
    char[] illegals = { '/', ' ', ':' };

    string[] array = dateTimeString.Split(illegals);
    string date = array[2] + "-" + array[1] + "-" + array[0] + " " + array[3] + ":" + array[4] + ":" + array[5];

    formattedDateTime = Convert.ToDateTime(date);      
    return formattedDateTime;
}

のブレークポイントConvert.ToDateTime(date)は、日付を2012-09-07 15:01:03として表示します。これは、必要な形式ですが、DateTimeではなく文字列として表示されます。

また、ここでユーザーtatisが説明したように、DateTimeFormatInfo属性を使用してみましたが、何とかして月と日のフィールドを交換するだけでした(私に)。どんな助けでも大歓迎です。mm/dd/yyyy hh:mm:ss

4

1 に答える 1

2

C# で日付文字列を DateTime に解析することに不安がある場合は、DateTime の ParseExact メソッドを参照してください。ドキュメンテーションはこちら

このようなもの:

CultureInfo provider = CultureInfo.InvariantCulture;
String format = "dd/MM/yyyy hh:mm:ss";
return DateTime.ParseExact(dateString, format, provider);
于 2012-09-07T15:10:09.610 に答える