替换特定位置的字符

Tza*_*ama 0 c# regex string

我的输入是一个表示机器执行时间和日期的字符串.问题是这个字符串的格式很糟糕,因此我无法DateTime.Parse将其转换为DateTime对象.

输入示例:

2014-01-07-15.26.46.000452

我需要将它转换为我可以使用的东西(用空格替换最后的' - ',用'​​:'替换前2'.'),如下所示:

2014-01-07 15:26:46.0​​00452

我想我应该使用正则表达式来解决这个问题因为我需要替换特定位置的字符,所以myString.Replace不会有任何好处.不幸的是,我使用正则表达式的知识几乎没有,我找不到任何与我的问题相符的例子.

任何人都可以帮我解决这个问题吗?(另外,我想解释这个正则表达式的工作方式和原因)

Adi*_*dil 5

您可以使用它解析DateTime.ParseExact通过自定义日期和时间格式字符串

DateTime dt = DateTime.ParseExact( "2014-01-07-15.26.46.000452", 
                                   "yyyy-MM-dd-H.m.s.ffffff",
                                   System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

  • @TzahMama:也许我戴着自己的眼镜,但这是更好的解决方案. (2认同)