DateTime字符串格式年份的最后一位数

时间:2012-03-21 11:29:50

标签: c# datetime-format

我想知道是否有更好的方法从数据时间对象中获取一年的最后一位数

var date = DateTime.Now;
string year1 = date.ToString("y"); //NOT OK return Month year (eg March 2012)
char year2 = date.ToString("yy")[1]; //OK return last digit of the year (eg 2)
char year3 = date.ToString("yy").Last(); //OK same as above using linq

任何人都知道是否存在已经预先存在的格式用于检索一年中的最后一位数字?

由于

5 个答案:

答案 0 :(得分:23)

你可以用简单的Modulo数学来做到这一点:

int digit = date.Year % 10;

答案 1 :(得分:4)

不,没有custom format string来获得一年中的最后一位数字。


有一个自定义格式字符串“y”,但仍然会返回两位数字,只是没有填充零。即2009年格式为“9”,但2010年格式为“10”。

您可以使用空字符串文字使“y”成为自定义格式字符串而不是标准格式字符串:

date.ToString("''y");

这将返回最后两位数字,例如“12”,而不是标准格式“2012年3月”。

答案 2 :(得分:3)

DateTime d = DateTime.Now;
int digit = d.Year % 10;

答案 3 :(得分:1)

这是你想要的吗?

DateTime.Now.Year.ToString().Substring(3);

答案 4 :(得分:-1)

为什么不在2位数字串输出上使用简单的子串(1,1)?