日期时间字符串格式中年份的最后一位是什么意思?

8
我想知道从datatime对象中获取年份的最后一位是否有更好的方法。
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

请问是否有一种预定义格式可用于检索年份的最后一位数字?

谢谢

4个回答

25

您可以使用简单的模运算来实现:

int digit = date.Year % 10;

如果你对2005取模10,那么它将返回5。 - Niranjan Singh
不错。虽然你应该使用模10而不是模100。 - Guffa
不错!我差点忘了模块。 - Chris Gessler
最初是10,有人编辑并将其更改为100 :-( 无论如何,我已将其更正回10。 - Roy Dictus

5

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


有一个自定义格式字符串"y",但它仍然返回两个数字,只是没有零填充。即2009将被格式化为"9",但2010将被格式化为"10"。

您可以使用空字符串字面量使"y"成为自定义格式字符串而不是标准格式字符串:

date.ToString("''y");

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

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

1

这是你想要的吗?

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接