2013-03-04 10 views
11

を設定する方法を、私は次のように変換する使用します。Convert.ToDateTime:フォーマット

Convert.ToDateTime(value) 

しかし、私は "MM/YY" のようにフォーマットする日付を変換する必要があります。
私はこのような何かを探しています:

var format = "mm/yy"; 
Convert.ToDateTime(value, format) 
+2

で示されています。あなたはフォーマットでDataTimeを出力することができます、それはあなたが意味するものですか? –

答えて

14

あなたはおそらく代わりにDateTime.ParseExactまたはDateTime.TryParseExactのいずれかを使用する必要があります。特定の形式を指定することができます。私は個人的にはTry -versionsを好んでいます。なぜなら、エラーケースに対してより良いコードを生成すると思うからです。

+1

datetime.paeseExact( "12/12"、 "mm/yy"、Cul ..)= {01/01/2012 00:12:00}; – Refael

+0

しかし、私は{01/12/12}または{12/12} – Refael

+1

を期待しています。@リファイア[Custom Date and Time Format Strings](http://msdn.microsoft.com/en-us/library)に目を通す必要があります。 /8kb3ddd4.aspx)。 'mm'は分、' MM'は年です。 –

9

valueはその形式でstringであり、あなたがDateTimeオブジェクトに変換したい場合は、あなたがDateTime.ParseExact静的メソッドを使用することができます。

DateTime.ParseExact(value, format, CultureInfo.CurrentCulture); 

例:

string value = "12/12"; 
var myDate = DateTime.ParseExact(value, "MM/yy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); 

Console.WriteLine(myDate.ToShortDateString()); 

結果:

2012-12-01 
+0

これを試してください:string value = "12/12"; format = "mm/yy"; datetime.paeseExact(value、format、Cul ..)= return {01/01/2012 00:12:00}。どうして ? – Refael

+0

したがって、 'DateTime.ParseExact(value、" mm/yy "、CultureInfo.CurrentCulture);は動作するはずです。 – MarcinJuraszek

+0

私は{01/12/12}または{12/12} – Refael

1

DateTimeにはフォーマットがありません。あなたは

ルックはあなたが日時を表示して書式を設定している場所など、フォーム、Webページ上の値を示し、暗黙のうちに起こる文字列、にDateTimeを回しているときのフォーマットにのみ適用され追加のガイダンスが必要な場合は、あなたの質問を修正してください。これについて

0

方法:試験は "2012分の12" に等しくなります

string test = "01-12-12"; 
    try{ 
     DateTime dateTime = DateTime.Parse(test); 
     test = dateTime.ToString("dd/yyyy"); 
    } 
    catch (FormatException exc) 
    { 
     MessageBox.Show(exc.Message); 
    } 

はそれが役に立てば幸い!

HEREをお読みください。

0

あなたはConvert.ToDateTimeを使用することができますが、 `DateTime`オブジェクトが定義された形式を持っていないHow to convert a Datetime string to a current culture datetime string

DateTimeFormatInfo usDtfi = new CultureInfo("en-US", false).DateTimeFormat; 

var result = Convert.ToDateTime("12/01/2011", usDtfi)