我正在寻找一种方法来快速剥离UTC DataTime值从字符串.字符串可能很长,可能不包含DateTime,但很可能:
string utctime = "1901-01-01T01:01:01.7730000";
寻找Regex:
utctime = Regex.Replace(utctime, @"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{4}", "");
但是,唉,它不起作用。
brtdzjyr1#
utctime = Regex.Replace(utctime, @"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(([+-]\d{2}:\d{2})|Z)?", "");
正如其中一条评论所说,你的正则表达式不适用于UTC和其他格式。试试上面的方法。它将匹配带或不带偏移量的字符串,带或不带小数秒,仅日期等。
k10s72fa2#
正确的指针和阅读正则表达式帮助了我!答:
// : 2020 - 10 - 27 T 19 : 31 : 47 . 1670000 utctime = Regex.Replace(utctime, @"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{7}", "");
要用正确的模式!编辑添加Jon Skeet从评论中的解释:
"1901-01-01T01:01:01.7730000Z" and "1901-01-01T01:01:01.7730000+00:00" are both values indicating a date/time in UTC. "1901-01-01T01:01:01.7730000" is just a local date/time, in an unspecified time zone.
我过去很少使用正则表达式,但我想从现在开始我会使用更多!资源:https://www.geeksforgeeks.org/write-regular-expressions/
2条答案
按热度按时间brtdzjyr1#
正如其中一条评论所说,你的正则表达式不适用于UTC和其他格式。试试上面的方法。它将匹配带或不带偏移量的字符串,带或不带小数秒,仅日期等。
k10s72fa2#
正确的指针和阅读正则表达式帮助了我!
答:
要用正确的模式!
编辑添加Jon Skeet从评论中的解释:
我过去很少使用正则表达式,但我想从现在开始我会使用更多!
资源:https://www.geeksforgeeks.org/write-regular-expressions/