字符串解析时间
我需要以“07:30 am”(不区分大小写)的格式获取时间。我正在阅读格式为“07:30 am”的文件。最终,我将从此构建一个DateTime,所以我只需要在am/pm部分之前留出一个空格。字符串解析时间
我可以检测一个使用这种发生或号码:
if(startString.IndexOfAny("ap".ToCharArray()) != -1)
{
}
什么是做到这一点的最佳途径?我猜我最终会得到两个可以与空间连接的字符串?可以使用上面的代码片段来实现这一点吗?
UPDATE:
我需要的分钟和AM/PM之间的日期时间的空间就结了,我不希望使用正则表达式。到目前为止,没有我在这里试图给我说...
实际输入我要处理的格式如下:
RecDate:“04月30日”
RECTIME: “05:30 am”
我需要在am/pm部分之前用空格创建一个新的DateTime对象。
你有两种选择,方便:
-
使用正则表达式来修正格式:
串NEWTIME = Regex.Replace(startString,@“(< = [01] \ d:[ 0-5] \ d)(?= [ap] m)“,”“);
-
使用DateTime.ParseExact只导入时间原样:
的DateTime NEWVALUE = DateTime.ParseExact( startString, “HH:MMTT”, CultureInfo.InvariantCulture);
我不喜欢第二种方法。
您需要使用不变文化,因为格式中mm
和tt
之间没有定义分隔符。
为什么你不使用正则表达式呢? (http://msdn.microsoft.com/de-de/library/system.text.regularexpressions.regex(v=vs.80).aspx)应该是一个正则表达式向导容易的事情(我不是)
第二种方法没有这样的签名 - 似乎我通过一个提供者;这对美国英语来说是正确的吗?第二个参数也出现错误:“标识符预期”? – IrishChieftain 2012-04-29 05:11:29
@IrishChieftain'CultureInfo'实现'IFormatProvider',所以像'New CultureInfo(“en-US”)'应该做的伎俩。 – phoog 2012-04-29 05:14:51
正则表达式中的“d”也出现错误:“无法识别的转义序列”... – IrishChieftain 2012-04-29 05:15:32