我有一个字符串
string date = "2017-04-06 05:00:00 a.m. +8:30a.m";
我需要在首次出现a.m后修剪上面的字符串,我的输出应该是
2017-04-06 05:00:00 a.m.
如何实现这一目标。?
答案 0 :(得分:2)
这应该有所帮助:
string date = "2017-04-06 05:00:00 a.m. +8:30a.m";
var s = date.Substring(0, date.IndexOf("a.m") + "a.m".Length);
答案 1 :(得分:0)
如果可以确保所有记录的格式保持不变,则可以使用Substring
。使用以下内容;
date.Substring(0, 22));
其中0是startIndex,22是你需要的字符串的长度。
否则,如果长度不固定,您可以继续使用Split
功能;
Dim result As String() = input.Split(New String() {"a.m"}, StringSplitOptions.None);
但是,结果是一个数组,
date = result(0);
答案 2 :(得分:0)
str.substring(0,str.indexOf(“a.m。”));
或
String.split,限制为1
str.split(“a.m。”,1)[0];
答案 3 :(得分:0)
也许想得太多,但可能你的下一个问题是:如何在a.m.
和p.m.
分割字符串?
在所有解决方案中,让我成为告诉你使用正则表达式的人(总有一个):
string date = "2017-04-06 05:00:00 a.m. +8:30a.m";
var s = Regex.Match(date, @"(.+[ap]\.m\.)").Groups[1];
这不仅可以获得日期,而且还可以使用下午。并且当格式更改时,您只需要更改模式而不是子串方法的内部工作方式。
可能你想把它重构为 Groups
,但这取决于你。