Разделить строку в позиции в C # - PullRequest
6 голосов
/ 12 сентября 2011

У меня есть отметка даты (020920111422), и я хочу разделить ее на

день = 02, месяц = ​​09, год = 2011, час = 14 и минута = 22 * ​​1003 *

Есть ли в C # метод "разбить строку в позиции"?

Ответы [ 6 ]

15 голосов
/ 12 сентября 2011

Вы хотите:

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);
7 голосов
/ 12 сентября 2011

вы можете сделать это через SubString - например:

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

ИЛИ создать DateTime :

DateTime myDateTime = DateTime.ParseExact ( mydatestamp, "ddMMyyyyHHmm" , CultureInfo.InvariantCulture );
3 голосов
/ 12 сентября 2011

Вы также можете использовать

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

, если конечной целью является DateTime.

3 голосов
/ 12 сентября 2011

Отвечая на вопрос о «разбить строку в позиции» - вы можете использовать метод String.Substring (Int32, Int32) , вызывая несколько раз с различными смещениями.

Также посмотритев LINQ Take () и Skip () методы, которые также позволяют указывать количество возвращаемых элементов.

В противном случае посмотрите примеры, которые другие парни предоставляют, используя DateTime.ParseExact(), Я считаю, что это наиболее правильный способ преобразования предоставленной вами строки в DateTime значение.

2 голосов
/ 12 сентября 2011

Вместо этого вы можете преобразовать отметку даты, используя Datatime.ParseExact, и можете извлечь нужный день, месяц, год, часы и минуты из этой отметки даты. Для преобразования Datetime.ParseExact см. Следующую часть кода.

DateTime.ParseExact(YourDate, "ddMMyyyyHHmm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)
0 голосов
/ 02 марта 2016

Для большего использования, может быть, это может помочь

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);
//...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...