Quiero agregar una marca de tiempo a los nombres de archivo a medida que se crean los archivos, pero la mayoría de los métodos de DateTime que he intentado generar algo con espacios y barras. Por ejemplo:
Debug.WriteLine(DateTime.Now.ToString()); // <-- 9/19/2012 1:41:46 PM
Debug.WriteLine(DateTime.Now.ToShortTimeString()); // <-- 1:41 PM
Debug.WriteLine(DateTime.Now.ToShortDateString()); // <-- 9/19/2012
Debug.WriteLine(DateTime.Now.ToFileTime()); // <-- 129925501061462806
ToFileTime()
funciona pero no es exactamente legible por humanos. ¿Cómo puedo formatear la salida a una marca de tiempo legible por humanos con fecha y hora que se puede usar en un nombre de archivo o extensión? ¿Preferiblemente algo como 2011-19-9--13-45-30
?
c#
datetime
filenames
datetime-format
pdizz
fuente
fuente
Respuestas:
Puedes usar esto:
fuente
Me gustaría utilizar la norma ISO 8601 de formato, sin separadores:
fuente
DateTime.Now.ToString("o")
, le daráyyyy-MM-ddTHH:mm:ss.fffffff-HH:mm
(donde la diferencia de hora y minuto final es +/- GMT). Por supuesto, esto no funcionaría como formato de nombre de archivo, pero"o"
es bueno saber el formato.Tengo una situación similar pero quiero una forma consistente de poder usar DateTime.Parse desde el nombre del archivo también, así que fui con
Cuando quiero analizar, simplemente puedo revertir la llamada Reemplazar. De esta manera no tengo que escribir nada aammdd ni adivinar qué formatos permite DateTime.Parse.
fuente
La siguiente lista de especificadores de formato de hora más utilizados.,
Usando lo anterior, podrá formar un nombre único para su nombre de archivo.
Aquí he proporcionado un ejemplo
O
Si no prefiere usar símbolos, puede probar esto también.
Espero que esto ayude a alguien ahora o en el futuro. :)
fuente
Personalmente me gusta así:
Porque distingue entre la fecha y la hora.
fuente
Puedes probar con
fuente
Usando la cadena de interpolación y el especificador de formato :
O si no estás en Estados Unidos:
fuente
Puede hacer una ruta para su archivo como se muestra a continuación:
fuente