在C#中的位置拆分字符串

本文关键字:拆分 字符串 位置 | 更新日期: 2023-09-27 18:08:32

我有一个日期戳(020920111422(,我想将其拆分为

天=02,月份=09,年份=2011,小时=14,分钟=22

C#中是否存在"split string at position"方法?

在C#中的位置拆分字符串

您想要:

string x = s.Substring(0, i), y = s.Substring(i);

(或者i-1/i+1,具体取决于您的具体要求(。

但是,您也可以使用DateTime.ParseExact将其加载到DateTime中,方法是告诉它显式格式:

var when = DateTime.ParseExact("020920111422", "ddMMyyyyHHmm",
    CultureInfo.InvariantCulture);

您可以通过SubString执行此操作,例如:

string myDay = mydatestamp.SubString (0,2);

或者创建一个DateTime:

DateTime myDateTime = DateTime.ParseExact ( mydatestamp, "ddMMyyyyHHmm" , CultureInfo.InvariantCulture );

回答考虑"在位置拆分字符串"的问题-您可以利用字符串。Substring(Int32,Int32(方法。

还可以看看LINQ take((和Skip((方法,它们也允许提供要返回的元素计数。

否则,请参阅其他人使用DateTime.ParseExact(),提供的示例。我相信这是将您提供的字符串转换为DateTime值的最正确方法。

您也可以使用

 var d = DateTime.Parse(s, "ddMMyyyyHHmm");

如果最终目标是DateTime。

相反,您可以使用Datatime.ParseExact转换日期戳,并可以从该日期戳中提取所需的日、月、年、小时和分钟。关于Datetime.ParseExact的转换,请参阅以下代码部分。

DateTime.ParseExact(YourDate, "ddMMyyyyHHmm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)

对于更多用例,这可能有助于

string rawData = "LOAD:DETAIL     11.00.0023.02.201614:52:00NGD    ...";
var idx = 0;
Func<int, string> read = count =>
{
    var result = rawData.Substring(idx, count);//.Trim();
    idx += count;
    return result;
};
var type = read(16);
var version = read(8);
var date = read(18);
var site = read(8);
//...