2016-07-18 16 views
-1

私のシステム日付はmm/dd/yyyy形式で、私のコードは日付をdd/mm/yyyy形式に変換します。今私はデータベースのテーブルの更新のためのyyyy/mm/dd形式の日付が欲しいです。私は試しています:日付変換は私のシステム日付時刻では動作しません

string d = Convert.ToDateTime(FromDate).ToString("yyyy/MM/dd"); 

しかし、それは返す:yyyy/dd/mm

+0

あなたは 'DateTime.ParseExact' – dotctor

+1

を使用する必要がありますあなたは[MCVE]を示していただけますか?つまり、問題を示すコピー、貼り付け、実行できるコードですか? – Enigmativity

+0

FromDateの値は何ですか? – user3185569

答えて

1

元の形式を使用してDateTimeに変換し、目的の形式に変換する必要があります。このように:

string FromDate = "12/13/2016"; 
string originalFormat = "MM/dd/yyyy"; 
string expectedFormat = "yyyy/MM/dd"; 
string d = DateTime.ParseExact(FromDate, originalFormat, CultureInfo.CurrentCulture) 
        .ToString(expectedFormat); 

Console.WriteLine(d); 

あなたが入力のフォーマットについてわからない場合は、この安全側のロジックで行くことができます。

string FromDate = "12/13/2016"; 
string originalFormat = "MM/dd/yyyy"; 
string expectedFormat = "yyyy/MM/dd"; 

DateTime convertedDate; 
string expectedDate = null; 
if (DateTime.TryParseExact(FromDate, originalFormat, CultureInfo.CurrentCulture, 
            DateTimeStyles.AssumeLocal, out convertedDate)) 
{ 
    expectedDate = convertedDate.ToString(expectedFormat); 
} 
else 
{ 
    // handle format errors. 
} 

Console.WriteLine(expectedDate); 
+1

変換に失敗したらどうなりますか? –

+0

@幸運にも、ユーザーは日付が指定された形式であると言っています。彼は、それが何らかのフォーマットであるかどうかチェックしなければならない未知のフォーマットを持っているとは言わなかった。もし私がそのフォーマットを100%確信しているなら、私は 'TryParse'を使用しません。 – user3185569

+1

しかし、開発者は、例外が発生する可能性がある場合には例外を気にして、例外 –

1

使用DateTime.TryParseExactあなたはそれが働いていたでしょう。 FromDateは形式MM/dd/yyyyの日付と必要な形式の文字列では、コードを考えてみましょう"yyyy/MM/dd"です:

string FromDateString ="07/18/2016"; 
string fromStringFormat= "MM/dd/yyyy"; 
DateTime FromDate; 
if(DateTime.TryParseExact(FromDateString, fromStringFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out FromDate)) 
{ 
    string requiredString= FromDate.ToString("yyyy/MM/dd"); 
    // Continue coding 
} 
else 
{ 
    // Conversion failed 
} 

Here is working Example

+0

日付はdd/mm/yyyy形式です。yyyy/mm/dd形式で表示したいだけですが、エラーStringは有効なDateTimeとして認識されませんでした。 –

+0

@ RahulSoni:どの行にエラーがありますか? [ここでは動作例です](https:// dotnetfiddle。ネット/ MTXayH) –

+0

FROMDATE = 2016年10月7日 のToDate = 18/07/2016 列D = Convert.ToDateTime(FROMDATE).ToString( "YYYY/MM/DD")。 が与える:2016年10月7日 文字列DD = Convert.ToDateTime(のToDate).ToString( "YYYY/MM/DD") は与える:エラー を私は 列D = Convert.ToDateTime(FROMDATE)を使用していた場合.ToString( "yyyy/dd/MM"); 付与:2016/07/10 文字列dd = Convert.ToDateTime(ToDate).ToString( "yyyy/dd/MM"); は与える:エラー –

関連する問題