2017-05-10 61 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

相關問題