Разбор строки даты, чтобы получить год - PullRequest
9 голосов
/ 12 февраля 2012

У меня есть строковая переменная, в которой хранится дата типа "05/11/2010".

Как мне разобрать строку, чтобы получить только год?

Так что у меня будет еще одна переменная года, например year = 2010.

Ответы [ 5 ]

21 голосов
/ 12 февраля 2012

Вы можете использовать метод DateTime.Parse , чтобы проанализировать строку для значения DateTime , которое имеет свойство года :

var result = DateTime.Parse("05/11/2010").Year;
// result == 2010

В зависимости от настроек культуры операционной системы может потребоваться предоставить CultureInfo :

var result = DateTime.Parse("05/11/2010", new CultureInfo("en-US")).Year;
// result == 2010
10 голосов
/ 12 февраля 2012

Это должно работать для вас.

string myDate = "05/11/2010"; 
DateTime date = Convert.ToDateTime(myDate);
int year = date.Year;
4 голосов
/ 12 февраля 2012

Если формат строки даты является фиксированным (дд / мм / гггг), я бы рекомендовал вам использовать DateTime.ParseExact Method .

Код:

const string dateString = "12/02/2012";
CultureInfo provider = CultureInfo.InvariantCulture;
// Use the invariant culture for the provider parameter,
// because of custom format pattern.
DateTime dateTime = DateTime.ParseExact(dateString, "dd/MM/yyyy", provider);
Console.WriteLine(dateTime);

Также я думаю, что это может быть немного быстрее, чем Метод DateTime.Parse , потому что метод Parse пытается проанализировать несколько представлений строки даты и времени.

3 голосов
/ 01 августа 2017

вы также можете использовать Regex , чтобы получить год в строке "05/11/2010"

public string getYear(string str)
{
    return (string)Regex.Match(str, @"\d{4}").Value;
}

var result = getYear("05/11/2010");

2010
1 голос
/ 23 февраля 2018

вариант dtb, который я использую:

string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...