2017-05-10 59 views
0

我使用的是具有这样的配置文件的程序:格式日期3位数的年份

<text string="{0:yyy}"> 
    <param type="date" /> 
</text> 

即在于此译:

String.Format(textNode.attr(string),arrayOfObjFromParamChildNodes) 

我的问题是,在这种情况下,今年不是3位数,但总是1993或2003,但我想写993和003.

有没有办法在不更改解析器的情况下修剪第一个字符?

+0

'yyy'是3位数的_minimum_的格式,不完全是3位数。 – Equalsk

+0

[yyy](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspx#yyySpecifier)doens't * trim *,它返回一个*最小* 3位数。该文档解释说,它返回最少3位数和零填充 –

+1

你想做什么?为什么3位数字?没有格式会返回完全3位数字,因此您必须创建自定义日期解析器或修改当前日期解析器 –

回答

0

您可以使用正则表达式,该正则表达式使用字符串的最后3个符号。

string pattern = @"(.{3})\s*$"; 
    var result = Regex.Match(year,pattern); 

.NET小提琴example

1

我的客户希望在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位数字,但它是一个很大的世界。

+0

作为一个开发人员是不是你的责任带来常识的表,并解释为什么3位数年是一个奇怪的选择。 – benPearce

相关问题