如何在c#

时间:2017-04-06 05:35:40

标签: c# string

我有一个字符串

string date = "2017-04-06 05:00:00 a.m. +8:30a.m";

我需要在首次出现a.m后修剪上面的字符串,我的输出应该是

2017-04-06 05:00:00 a.m.

如何实现这一目标。?

4 个答案:

答案 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,但这取决于你。