用其各自的月号替换月份名称

时间:2014-01-15 06:20:10

标签: .net vb.net visual-studio-2010 visual-studio

我正在尝试将<month>代码中的月份值替换为其各自的月份编号,例如:<month>Feb</month>应替换为<month>02</month>

我试过了,

Dim strFile As String = File.ReadAllText(TextBox1.Text & "\" & parentFolder & ".xml")
    strFile = Regex.Replace(strFile, "<conf-start.*?><day>(.*?)</day><month>Feb</month>", "$&<month>02</month>")
    File.WriteAllText(TextBox1.Text & "\" & parentFolder & ".xml", strFile) 

但它给了我以下输出

<conf-start iso-8601-date="0"><day>00</day><month>Feb</month><month>02</month>

相反,它在月份名称旁边添加标签我想要的输出如下,

<conf-start iso-8601-date="0"><day>00</day><month>02</month>

月份名称应替换为其各自的编号。 提前谢谢..

1 个答案:

答案 0 :(得分:0)

使用XDocument很容易搞清楚。然后用

解析节点内容

DateTime dateTime = DateTime.ParseExact(“November”,“MMMM”,CultureInfo.CurrentCulture); DateTime dateTime = DateTime.ParseExact(“Nov”,“MMM”,CultureInfo.CurrentCulture);

取决于月份的格式。那会给你一个像11/1/2014 12:00:00 AM的日期。我有点惊讶的是,这一年是最新的,而不是时代,但我们并不关心。

然后 dateTime.Month.ToString()替换节点内容。

DateTime技巧不喜欢“。”在第二种情况下的缩写月份,但你的样本不包含。如果它出现使用dateString = dateString.TrimEnd('。')来摆脱“。”