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
también funciona.
No puedo entender para qué son las comillas simples.
Es un delimitador de cadena literal .
Cualquier cosa entre 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 personalizado, 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 referencia cultural actual. Citarlo como ':'
significa que siempre se usará el carácter literal :
, independientemente de la referencia cultural actual.
Es útil saber que este es el mismo formato utilizado por la función GetDateFormat de Windows. Utiliza apóstrofes 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, indica 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 inclinadas ( /
). Porque esos son incorrectos para las culturas que no usan barras y dos puntos para construir fechas/horas:
Lo que le gustaría hacer, si quiere indicar:
Es usar el especial:
Y construir un formato como:
dd/aaaa/MM ss:HH:mm
No sé qué necesidad comercial podría tener uno para mostrar una fecha como:
Pero de esta manera el localizador insertará los separadores de fecha y hora correctos de la cultura.
Mientras que si literalmente pidieras /
, -
o :
:
'/'
aaaa '/'
MM ss ':'
HH ':'
mmLiteralmente obtendrás:
en vez de: