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

Gui*_*ume 7 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Roy*_*tus 23

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

int digit = date.Year % 10;
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

不,没有自定义格式字符串来获取年份的最后一位数字。


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

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

date.ToString("''y");
Run Code Online (Sandbox Code Playgroud)

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