C#ToTitleCase和文本格式的日期/时间
本文关键字:日期 时间 格式 文本 C#ToTitleCase | 更新日期: 2023-09-27 18:21:19
我有一个字符串"2011年1月26日星期四"。
当我使用CultureInfo.ToTitleCase()格式化时:
var dateString = "THURSDAY 26th JANUARY 2011";
var titleString = myCultureInfoObject.TextInfo.ToTitleCase(dateString);
其显示方式如下:"Thursday 26Th January 2011"
。这正是我需要的。。。除了26Th中的T已资本化。有没有办法阻止这种情况的发生,因为这是一个约会,看起来不对?I.e只有标题大小写的字符前面没有数字?
您可以使用带有MatchEvaluator
的正则表达式,只将"真实"单词放在标题框中:
var dateString = "THURSDAY 26th JANUARY 2011";
MatchEvaluator ev = m => myCultureInfoObject.TextInfo.ToTitleCase(m.Value);
var titleString = Regex.Replace(dateString, @"'b[a-zA-Z]+'b", ev);
这将只将标题大小写应用于"THURSDAY"answers"JANUARY",而不应用于"26TH",因为它与正则表达式模式不匹配。