假设我的身份证号码是以:911125 ...
开头的 91 = 1991(年)
11 = 11月(月)
25 =日(天)
我怎样才能以这种格式得到这个:1991年11月25日?
编辑:这是我尝试过的,但我知道这是错的:DateTime dt = DateTime.ParseExact(dateOfBirth, "yyMMdd", CultureInfo.InvariantCulture);
答案 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
将执行相同的工作,但如果传递给它的字符串与提供的格式不匹配,则会抛出异常。