我使用的是具有这样的配置文件的程序:格式日期3位数的年份
<text string="{0:yyy}">
<param type="date" />
</text>
即在于此译:
String.Format(textNode.attr(string),arrayOfObjFromParamChildNodes)
我的问题是,在这种情况下,今年不是3位数,但总是1993或2003,但我想写993和003.
有没有办法在不更改解析器的情况下修剪第一个字符?
我使用的是具有这样的配置文件的程序:格式日期3位数的年份
<text string="{0:yyy}">
<param type="date" />
</text>
即在于此译:
String.Format(textNode.attr(string),arrayOfObjFromParamChildNodes)
我的问题是,在这种情况下,今年不是3位数,但总是1993或2003,但我想写993和003.
有没有办法在不更改解析器的情况下修剪第一个字符?
您可以使用正则表达式,该正则表达式使用字符串的最后3个符号。
string pattern = @"(.{3})\s*$";
var result = Regex.Match(year,pattern);
.NET小提琴example
我的客户希望在3位数的一年中,奇怪的是,我知道...... 在我补上一句:
If (format.Contains("yyy") && !format.Contains("yyyy"))
foreach date in args replace it with d.Value.AddYears(d.Value.Year % 1000 -d.Value.Year)
我个人认为,对于一致性yyy
应该只写3位数字,但它是一个很大的世界。
作为一个开发人员是不是你的责任带来常识的表,并解释为什么3位数年是一个奇怪的选择。 – benPearce
'yyy'是3位数的_minimum_的格式,不完全是3位数。 – Equalsk
[yyy](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspx#yyySpecifier)doens't * trim *,它返回一个*最小* 3位数。该文档解释说,它返回最少3位数和零填充 –
你想做什么?为什么3位数字?没有格式会返回完全3位数字,因此您必须创建自定义日期解析器或修改当前日期解析器 –