c# .net datetime .net-core datetime-format

¿Qué significa una sola cita dentro de un formato de fecha y hora C#?



.net datetime (2)

Es útil saber que este es el mismo formato utilizado por la función GetDateFormat Windows. Utiliza apóstrofos para indicar algún literal que desea insertar en la cadena resultante.

Se puede encontrar más documentación de los códigos de formato de cadena en:

En su cadena es indicio que literalmente quiere agregar guiones, dos puntos y los caracteres T :

aaaa ''-'' MM ''-'' dd ''T'' HH '':'' mm '':'' ss

En general, no desea construir fechas / horas literalmente con guiones ( - ) o dos puntos (:), o incluso barras ( / ). Debido a que están mal para las culturas que no usan barras y dos puntos para construir fechas / horas:

  • 22/10/2019 10∶19∶54 ᴀᴍ
        1. 10:19:54
  • 2019.10.22 10:19:54
  • 2019-10-22 10.19.54
  • 2019-10-22 10:19:54
  • 2019-10-22 10:19:54 AM
  • 2019-10-22 ཆུ་ཚོད་ 10:19:54 སྔ་ ཆ་
  • 2019-10-22 오전 10:19:54
      1. 2019 10:19:54
        1. 10:19:54
  • 22.10.19 10:19:54
  • 22.10.19 ý. 10:19:54
  • 22.10.2019 10.19.54
  • 22.10.2019 10:19:54
  • 22.10.2019 10:19:54 pd
  • 22.10.2019 г. 10:19:54
  • 22.10.2019. 10:19:54
  • 22-10-19 10.19.54
  • 22-10-19 10.19.54 AM
  • 22-10-19 10:19:54
  • 22-10-19 ਸਵੇਰ 10:19:54
  • 22-10-2019 10:19:54
  • 22-10-2019 ৰাতিপু 10:19:54
  • 22-окт. 19 10:19:54
  • 23/02/41 10:19:54 ص
  • 30/07/1398 10:19:54 ق.ظ

Qué desea hacer, si desea indicar:

  • "aquí es donde debes poner el separador de fecha"
  • "aquí es donde debes poner el separador de tiempo"

Es usar el especial:

  • carácter de reemplazo del separador de fecha (/)
  • carácter de reemplazo del separador de tiempo (:)

Y construya un formato como:

dd / aaaa / MM ss: HH: mm

No sé qué necesidad comercial podría tener que mostrar una fecha como:

  • 22/2019/10 37:10:24
  • 22-2019-10 37∶10∶24
  • 22 // 2019 // 10 37 :: 10 :: 24
      1. 10 37∶10∶24

Pero de esta manera el localizador insertará los separadores de fecha y hora correctos de la cultura.

Mientras que si literalmente solicitó / , - o:

  • dd ''/'' aaaa ''/'' MM ss '':'' HH '':'' mm

Literalmente obtendrás:

  • 22/2019/10 37:10:24

más bien que:

  • 22-2019-10 37∶10∶24

Tenemos, por ejemplo, esta constante en C #:

System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern

Tiene este valor:

"yyyy''-''MM''-''dd''T''HH'':''mm'':''ss"

Lo uso en la función ParseExact y luego yyyy-MM-ddTHH:mm:ss funciona.

No puedo entender para qué son las comillas simples.


Es un delimitador de cadena literal .

Cualquier cosa entre las comillas simples se interpreta como un carácter literal, y no se interpretará como una cadena de formato personalizado.

Son equivalentes a escapar usando una barra invertida: dd''T''HH es lo mismo que dd/THH .

En su cadena yyyy''-''MM''-''dd''T''HH'':''mm'':''ss , las comillas son innecesarias alrededor de - y T , ya que no son cadenas de formato personalizadas, por lo que siempre se interpretarán como literales de cadena. Sin embargo : es un especificador de formato , que se evalúa como un separador de tiempo adecuado para la cultura actual. Citarlo como '':'' significa que el carácter literal : siempre se utilizará, independientemente de la cultura actual.