以特定日期格式获取ID号的开头

时间:2013-09-17 17:16:12

标签: c#

假设我的身份证号码是以:911125 ...

开头的

91 = 1991(年)
11 = 11月(月)
25 =日(天)

我怎样才能以这种格式得到这个:1991年11月25日?

编辑:这是我尝试过的,但我知道这是错的:

DateTime dt = DateTime.ParseExact(dateOfBirth, "yyMMdd", CultureInfo.InvariantCulture);

1 个答案:

答案 0 :(得分:5)

您需要将其解析为DateTime对象( DateTime.TryParseExact ),然后您可以将其格式化为:

string str = "911125";
DateTime dt;
if (DateTime.TryParseExact(str
                            , "yyMMdd"
                            , CultureInfo.InvariantCulture
                            , DateTimeStyles.None
                            , out dt))
{
    Console.WriteLine(dt.ToString("dd MMMM yyyy"));
}
else
{
    Console.WriteLine("Invalid date string");
}

你会得到:

25 November 1991

编辑:

您的代码应该可以正常工作,它正在解析Date,但您没有将其格式化以进行显示。

string formattedDate = dt.ToString("dd MMMM yyyy");

我使用DateTime.TryParseExact的原因是,如果解析失败,它不会抛出异常。 DateTime.ParseExact将执行相同的工作,但如果传递给它的字符串与提供的格式不匹配,则会抛出异常。