Как преобразовать одно значение datetime в yyyy / MM / dd HH: mm: ss format в c # [duplicate]

Используйте метод ExecuteStoreQuery контекста сущности. Это позволяет избежать загрузки всего набора результатов и десериализации в объекты для простого подсчета строк.

  int count;  используя (var db = new MyDatabase ()) {строка sql = "SELECT COUNT (*) FROM MyTable, где FkId = {0}";  object [] myParams = {1};  var cntQuery = db.ExecuteStoreQuery & lt; int & gt; (sql, myParams);  count = cntQuery.First & lt; int & gt; ();  }  
482
задан SARAVAN 11 June 2010 в 19:43
поделиться

13 ответов

837
ответ дан Vadim Ovchinnikov 15 August 2018 в 23:59
поделиться

Вы сами написали формат.

yourdate.ToString ("yyyyMMddHHmmss")

  • MM = двухзначный месяц [ ! d1]
  • mm = две цифры минут
  • HH = двухзначный час, 24 час часы
  • hh = 2 разряд час, 12 час часы

Все остальное должно быть понятным.

238
ответ дан Anthony Pegram 15 August 2018 в 23:59
поделиться
  • 1
    & Quot; FFF & Quot; даст миллисекунды, чтобы вы могли использовать «yyyyMMddHHmmssfff». чтобы дать строку до миллисекунд. – Jeff Widmer 30 September 2011 в 19:06
  • 2
    Что является частью часового пояса (количество часов, которые нужно добавить или вычесть из GMT)? – Kiquenet 31 October 2017 в 17:41

Легкий метод, полный контроль над 'from type' и 'to type', и только нужно запомнить этот код для будущих отливок

  DateTime.ParseExact (InputDate, "dd / MM  / yyyy ", CultureInfo.InvariantCulture) .ToString (" yyyy / MM / dd "));   
1
ответ дан Arun Prasad E S 15 August 2018 в 23:59
поделиться

После того, как вы потратили много времени на поиск Google, я нашел решение ниже, когда я локально давал дату, без каких-либо исключений, с другого сервера, была ошибка ......... Дата не соответствует формат. Перед сохранением / поиском. Введите дату даты в C #, просто проверяя, что внешняя культура Сервера такая же, как культура сервера базы данных. Ex оба должны быть «en-US» или должны быть «en-GB» asp ниже snap

Даже с другим форматом даты, например (dd / mm / yyyy) или (yyyy / mm / dd), он сохранит или выполнит поиск точно.

-1
ответ дан Ayaat Shifa 15 August 2018 в 23:59
поделиться
  • 1
    Приходится капитализировать эти m - M - месяц, m - минута. Это даст вам, например, 2017/51/10 – Chris Moschini 18 October 2017 в 16:12
  • 2
    Его просто показывать формат даты может быть день / месяц / год или год / месяц / день .......... он будет искать, несмотря на разницу в культуре ... не путайте со временем ....... ......... этот формат можно установить на датуTimePicker calander ........ – Ayaat Shifa 18 October 2017 в 19:48

Если вы используете ReSharper, обратитесь за помощью к:: (смотрите изображение)

20
ответ дан Georg 15 August 2018 в 23:59
поделиться
  • 1
    Вы получаете то же самое с 2013 (и, возможно, раньше) с ReSharper. – Wai Ha Lee 6 November 2015 в 12:04

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

Пользовательские строки формата даты и времени

Для вашего конкретного примера (как указывали другие) используйте что-то вроде

  my_format = "yyyyMMddHHmmss";  DateTime.Now.ToString (my_format);   

Где my_format может быть любой строковой комбинацией y, M, H, m, s, f, F и более! Проверьте ссылку.

8
ответ дан joecop 15 August 2018 в 23:59
поделиться

Вы должны быть осторожны между месяцами (ММ) и минутами (мм):

  DateTime dt = DateTime.Now;  // Или любая строка s = dt.ToString ("yyyyMMddHHmmss");   

(Также обратите внимание, что HH - 24-часовое время, тогда как hh будет 12-часовым часом, обычно в сочетании с t или tt для обозначения am / pm.)

Если вы хотите сделать это как часть строки составного формата, вы должны использовать:

  string s = string.Format ("Дата / время: {0: yyyyMMddHHmmss}"  , dt);   

Для получения дополнительной информации см. страницу MSDN в пользовательских форматах даты и времени .

126
ответ дан Jon Skeet 15 August 2018 в 23:59
поделиться
  • 1
    возможно ли: now.ToString ("yyyyMMdd_HHmmss") ? Я имею в виду, можно конкатенацию с другими персонажами, правильно? – DanielV 31 August 2015 в 12:35
  • 2
    @DanielV: Да, но я бы привел буквальные символы (с апострофами). – Jon Skeet 31 August 2015 в 12:47
9
ответ дан kleopatra 15 August 2018 в 23:59
поделиться

На этом сайте есть отличные примеры проверьте

  // создайте дату создания 2008-03-09 16: 05: 07.123 DateTime dt = new DateTime (2008)  , 3, 9, 16, 5, 7, 123);  String.Format ("{0: y yy yyy yyyy}", dt);  // "8 08 008 2008" year String.Format ("{0: M MM MMM MMMM}", dt);  // «3 марта марта» месяц String.Format («{0: d dd ddd dddd}», dt);  // "9 09 Sun Sunday" day String.Format ("{0: h hh H HH}", dt);  // «4 04 16 16» час 12/24 String.Format («{0: m mm}», dt);  // "5 05" минута String.Format ("{0: s ss}", dt);  // "7 07" второй String.Format ("{0: f ff fff ffff}", dt);  // "1 12 123 1230" sec.fraction String.Format ("{0: F FF FFF FFFF}", dt);  // "1 12 123 123" без нулей String.Format ("{0: t tt}", dt);  // «П ПМ» А.М.  или P.M.  String.Format ("{0: z zz zzz}", dt);  // "-6 -06 -06: 00" часовой пояс // числа месяц / день без / с ведущими нулями String.Format ("{0: M / d / yyyy}", dt);  // "3/9/2008" String.Format ("{0: MM / dd / yyyy}", dt);  // "03/09/2008" // имя дня / месяца String.Format ("{0: ddd, MMM d, yyyy}", dt);  // «Sun, Mar 9, 2008» String.Format («{0: dddd, MMMM d, yyyy}», dt);  // «Sunday, March 9, 2008» // two / four digit year String.Format («{0: MM / dd / yy}», dt);  // "03/09/08" String.Format ("{0: MM / dd / yyyy}", dt);  // "03/09/2008"  

Стандартное форматирование DateTime

  String.Format ("{0: t}", dt);  // "4:05 PM" ShortTime String.Format ("{0: d}", dt);  // "3/9/2008" ShortDate String.Format ("{0: T}", dt);  // "4:05:07 PM" LongTime String.Format ("{0: D}", dt);  // «Sunday, March 09, 2008» LongDate String.Format («{0: f}», dt);  // "Sunday, March 09, 2008 4:05 PM" LongDate + ShortTime String.Format ("{0: F}", dt);  // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime String.Format ("{0: g}", dt);  // "3/9/2008 16:05" ShortDate + ShortTime String.Format ("{0: G}", dt);  // "3/9/2008 4:05:07 PM" ShortDate + LongTime String.Format ("{0: m}", dt);  // «Март 09» MonthDay String.Format («{0: y}», dt);  // «Март 2008» YearMonth String.Format («{0: r}», dt);  // "Sun, 09 Mar 2008 16:05:07 GMT" RFC1123 String.Format ("{0: s}", dt);  // "2008-03-09T16: 05: 07" SortableDateTime String.Format ("{0: u}", dt);  // «2008-03-09 16: 05: 07Z». Спецификатор DateTimeFormatInfo. Значение шаблона (для культуры в США) t ShortTimePattern h: mm tt d ShortDatePattern M / d / yyyy T LongTimePattern h: mm: ss tt  D LongDatePattern dddd, MMMM dd, yyyy f (комбинация D и t) dddd, MMMM dd, yyyy h: mm tt F FullDateTimePattern dddd, MMMM dd, yyyy h: mm: ss tt g (комбинация d и t) M /  d / yyyy h: mm tt G (комбинация d и T) M / d / yyyy h: mm: ss tt m, M MonthDayPattern MMMM dd y, Y YearMonthPattern MMMM, yyyy r, R RFC1123Pattern ddd, dd MMM yyyy HH '  : 'mm': 'ss' GMT '(*) s SortableDateTimePattern yyyy' - 'MM' - 'dd'T'HH': 'mm': 'ss (*) u UniversalSortableDateTimePattern yyyy' - 'MM' - 'dd  HH ':' mm ':' ss'Z '(*) (*) = независимый от культуры * /  

Обновление с использованием формата интерполяции строк c # 6

  // время создания 2008-03-09 16: 05: 07.123 DateTime dt = new DateTime (2008, 3, 9, 16, 5, 7, 123);  $ "{dt: y yy yyy yyyy}";  // «8 08 008 2008» год $ «{dt: M MM MMM MMMM}";  // «3 марта марта« месяц $ »{dt: d dd ddd dddd}";  // "9 09 Sun Sunday" день $ "{dt: h hh H HH}";  // "4 04 16 16" час 12/24 $ "{dt: m mm}";  // "5 05" минута $ "{dt: s ss}";  // "7 07" second $ "{dt: f ff fff ffff}";  // "1 12 123 1230" sec.fraction $ "{dt: F FF FFF FFFF}";  // "1 12 123 123" без нулей $ "{dt: t tt}";  // «П ПМ» А.М.  или P.M.  $ "{dt: z zz zzz}";  // "-6 -06 -06: 00" часовой пояс // числа месяц / день без / с ведущими нулями $ "{dt: M / d / yyyy}";  // "3/9/2008" $ "{dt: MM / dd / yyyy}";  // "03/09/2008" // день / месяц имен $ "{dt: ddd, MMM d, yyyy}";  // "Sun, 9 марта 2008 г." $ "{dt: dddd, MMMM d, yyyy}";  // «Воскресенье, 9 марта 2008 г.» // два / четыре цифры года $ "{dt: MM / dd / yy}";  // "03/09/08" $ "{dt: MM / dd / yyyy}";  // «03/09/2008»  
468
ответ дан Moes 15 August 2018 в 23:59
поделиться
  • 1
    Я хотел бы получить этот формат: yyyyMMddHHmm [+ -] ZZzz где Часть [+ -] ZZzz - это часовой пояс (количество часов, которые нужно добавить или вычесть из даты по Гринвичу) – Kiquenet 31 October 2017 в 17:42
  • 2
  • 3
    zzz is -06: 00 , я хотел бы -0600 – Kiquenet 1 November 2017 в 11:02
  • 4
    @Kiquenet вы попробовали .Replace (& quot;: & quot ;, & quot; & quot;) $ "{dt: yyyyMMddHHmmzzz}" .Replace (":", " & quot;) как работа – Moes 18 December 2017 в 04:24

Вы можете использовать строку пользовательского формата:

  DateTime d = DateTime.Now;  string dateString = d.ToString ("yyyyMMddHHmmss");   

Замените «hh» для «HH», если вы не хотите 24-часового времени.

25
ответ дан Paul Kearney - pk 15 August 2018 в 23:59
поделиться
[D2] DateTime.Now.ToString ( "ГГГГММДДччммсс");

, если вы просто хотите, чтобы он отображался как строка

18
ответ дан Pharabus 15 August 2018 в 23:59
поделиться

В .Net Standard 2 вы можете отформатировать DateTime как belows:

  DateTime dt = DateTime.Now;  CultureInfo iv = CultureInfo.InvariantCulture;  // Форматы по умолчанию // D - длинная дата Вторник, 24 апреля 2018 // d - короткая дата 04/24/2018 // F - полная дата долго вторник, 24 апреля 2018 г. 06:30:00 // f - полная дата короткая  Вторник, 24 апреля 2018 года 06:30 // G - general long 04/24/2018 06:30:00 // g - общий короткий 04/24/2018 06:30 // U - универсальный полный вторник, 24 апреля 2018 года 06  : 30: 00 // u - универсальная сортировка 2018-04-24 06:30:00 // с - сортировка 2018-04-24T06: 30: 00 // T - долгое время 06:30:00 // t - короткое  время 06:30 // O - ISO 8601 2018-04-24T06: 30: 00.0000000 // R - RFC 1123 Вт, 24 апреля 2018 06:30:00 GMT // M - месяц 24 апреля // Y - год 2018  April Console.WriteLine (dt.ToString («D», iv));  // Пользовательские форматы // M / d / yy 4/8/18 // MM / dd / yyyy 04/08/2018 // yy-MM-dd 08-04-18 // yy-MMM-dd ddd 08-  Apr-18 Sun // yyyy-Md dddd 2018-4-8 Sunday // yyyy MMMM dd 2018 08 апреля // h: mm: ss tt zzz 4:03:05 PM -03 // HH: m: s tt zzz  16:03:05 -03: 00 // hh: mm: ss tz 04:03:05 P -03 // HH: mm: ss tt zz 16:03:05 PM -03 Console.WriteLine (dt.ToString (  «M / d / yy», iv));   
4
ответ дан Sina Lotfi 15 August 2018 в 23:59
поделиться

с использованием C # 6.0

  $ "Date- {DateTime.Now:yyyyMMddHHmmss}"  
2
ответ дан Waleed A.K. 15 August 2018 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: