我需要以"07:30 am"(不区分大小写)的格式获取时间.我正在阅读一个文件,格式为"07:30 am".最终我将构建一个DateTime,所以我只需要在am/pm部分之前用空格来回来.
我可以使用以下方法检测a或p的出现:
if(startString.IndexOfAny("ap".ToCharArray()) != -1)
{
}
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方法是什么?我猜我最终会得到两个可以与空格连接的字符串?可以拆分与上面的代码片段一起使用来实现这个目的吗?
更新:
我需要在分钟和AM/PM之间的DateTime中留出一个空格,我不想使用正则表达式.到目前为止,我在这里尝试过的任何东西都没有给我......
我必须处理的实际输入采用以下格式:
RecDate:"04/30/2012"
RecTime:"05:30 am"
我需要从am/pm部分之前的空格创建一个新的DateTime对象.
你有两个简单的选择:
使用RegEx修复格式:
string newTime = Regex.Replace(startString,@"(?<= [01]\d:[0-5]\d)(?= [ap] m)","");
使用DateTime.ParseExact只是按原样导入时间:
DateTime newValue = DateTime.ParseExact(startString,"hh:mmtt",CultureInfo.InvariantCulture);
我偏爱第二种方法.
您需要使用Invariant Culture,因为在格式mm和tt格式之间没有定义分隔符.