5

日付を含み、「MMMyy」の形式の文字列があります。どうすればそれが可能になるでしょうか?
サンプル:

string date = "MAY09";
DateTime a = DateTime.Parse("MAY09"); //Gives "2012.05.09 00:00:00"
DateTime b = DateTime.ParseExact("MAY09", "MMMyy", null); //Gives error
DateTime c = Convert.ToDateTime("MAY09"); //Gives "2012.05.09 00:00:00"

I need "2009-05-01"
4

5 に答える 5

9

次の代わりに、3番目のパラメーターの前に不変のカルチャを指定しますnull

DateTime b = DateTime.ParseExact("MAY09", "MMMyy", CultureInfo.InvariantCulture);
于 2012-07-26T06:40:49.400 に答える
4

2つ目は、適切な文化を使用する以外に、必要なものです。null現在の文化からの日付/時刻形式の情報を使用するように言います-それが英語の文化でない場合は失敗します。(ユーザープロファイルからあなたがどこにいるかは明らかではありませんが、おそらく英国の文化ではありませんか?)

不変のカルチャを指定することは、英語の月/日の名前を取得する簡単な方法です。

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        string text = "MAY09";
        string pattern = "MMMyy";
        var culture = CultureInfo.InvariantCulture;
        DateTime value = DateTime.ParseExact(text, pattern, culture);
        Console.WriteLine(value.ToString("yyyy-MM-dd", culture));
    }
}
于 2012-07-26T06:41:34.817 に答える
0

ToStringメソッドのパラメーターとして日付/時刻形式を直接指定できます

string dateTime = DateTime.Now.ToString("MMMyy");
于 2012-07-26T06:44:35.437 に答える
0

これは役立つはずです:

string date = "MAY09";
CultureInfo s = new CultureInfo("en-US");
DateTime b = DateTime.ParseExact(date, "MMMyy", s);
于 2012-07-26T06:45:07.493 に答える
0

以下のコードを試してください。

string date = "MAY09";
CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
DateTime dateTime = DateTime.ParseExact(date,"MMMyy",culture);
于 2012-07-26T06:48:33.027 に答える