在C#中的位置拆分字符串
本文关键字:拆分 字符串 位置 | 更新日期: 2023-09-27 18:08:32
我有一个日期戳(020920111422(,我想将其拆分为
天=02,月份=09,年份=2011,小时=14,分钟=22
C#中是否存在"split string at position"方法?
您想要:
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);
//...