我使用的是具有這樣的配置文件的程序:格式日期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位數字,因此您必須創建自定義日期解析器或修改當前日期解析器 –