Подтвердить что ты не робот

DateTime.Parse Американский формат даты С#

Вероятно, простой вопрос -

Я читаю данные из нескольких файлов.

Моя проблема в том, что когда я читаю дату из американского файла, я разбираю ее так:

DateSold = DateTime.Parse(t.Date)

Это анализирует строку t.Date в формате даты, однако она форматирует американскую дату на европейскую дату, например.

Если дата указана в файле как 03/01/2011, она читается как 3 января 2011 года, когда она должна быть 1 марта 2011 года.

Есть ли способ сделать это так, чтобы он форматировался на европейскую дату?

4b9b3361

Ответ 1

var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);

Сам DateTime не имеет форматирования, только когда вы конвертируете его в строку или из соответствующей строки.

Чтобы просмотреть дату в американском формате, вы передаете формат методу ToString

string americanFormat = dt.ToString("MM/dd/yyyy");

Ответ 2

Если вы разбираете дату из файла, который является специально форматированным файлом в США, просто передайте информацию о культуре США в функцию разбора следующим образом:

var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));

Таким образом вы можете просто поменять строку культуры на другой регион, необходимый для синтаксического анализа. Кроме того, вам больше не нужно изучать специфические нюансы формата даты и времени для каждой культуры, так как .Net позаботится об этом для вас, как это предусмотрено.

Ответ 3

Используйте DateTime.ParseExact или DateTime.TryParseExact, когда синтаксический анализ и указать строку формата при форматировании с помощью ToString.

Обратите внимание, что после того, как он был разобран, нет такой вещи, как "американская дата". Значение DateTime не имеет понятия форматирования.

Похоже, что вас не интересует часть Parse так же, как часть форматирования, например

string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

... но я бы рекомендовал вам явно контролировать синтаксический анализ и форматирование.

Если у вас разные форматы файлов, при чтении каждого файла вам нужно указать разные строки формата. Как вы затем форматируете данные, это отдельное решение.

Ответ 4

Если вы знаете формат заранее, вы можете использовать DateTime.ParseExact, используя американский формат в качестве вашей строки формата.

Ответ 5

string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012    
string formatteddate=DateTime.Now.ToString("D") // output: Monday, November 08, 2012    
string formatteddate=DateTime.Now.ToString("f") // output: Monday, November 08, 2012 3:39 PM    
string formatteddate=DateTime.Now.ToString("g") // output: Monday, November 08, 2012 3:39:46 PM    
string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012 3:39 PM

Далее дается формат даты и времени в asp.net.

http://dateformat.blogspot.in/2012/09/date-time-format-in-c-aspnet.html