我有一个日期戳(020920111422),我想将其拆分为
天= 02, 月= 09, 年= 2011年, 小时= 14, 和分钟= 22
C#中是否有“在位置拆分字符串”方法?
答案 0 :(得分:15)
你想:
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);
答案 1 :(得分:7)
您可以通过SubString
执行此操作 - 例如:
string myDay = mydatestamp.SubString (0,2);
或创建DateTime:
DateTime myDateTime = DateTime.ParseExact ( mydatestamp, "ddMMyyyyHHmm" , CultureInfo.InvariantCulture );
答案 2 :(得分:3)
考虑到“在位置上拆分字符串”回答问题 - 您可以通过多次使用不同的抵消来利用String.Substring(Int32, Int32)方法。
另请参阅LINQ Take()和Skip()方法,它们也允许返回元素的数量。
否则,请参阅使用DateTime.ParseExact(),
提供其他人的示例。我相信这是将您提供的字符串转换为DateTime
值的最正确方法。
答案 3 :(得分:3)
您也可以使用
var d = DateTime.Parse(s, "ddMMyyyyHHmm");
如果最终目标是DateTime。
答案 4 :(得分:2)
相反,您可以使用Datatime.ParseExact
转换日期戳,并可以从该日期戳中提取您想要的日,月,年,小时和分钟。请参阅以下代码部分以了解Datetime.ParseExact
转换。
DateTime.ParseExact(YourDate, "ddMMyyyyHHmm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)
答案 5 :(得分:0)
对于更多用例,也许这可以帮助
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);
//...