Estoy escribiendo un archivo CSV. Necesito escribir marcas de tiempo que sean precisas al menos para el segundo, y preferiblemente para el milisegundo. ¿Cuál es el mejor formato para las marcas de tiempo en un archivo CSV para que Excel pueda analizarlo de forma precisa y sin ambigüedades con una mínima intervención del usuario?¿Mejor formato de marca de tiempo para CSV/Excel?
Respuesta
Para una segunda precisión, aaaa-MM-dd HH: mm: ss debería hacer el truco.
Creo que Excel no es muy bueno con fracciones de segundo (los pierde al interactuar con el objeto COM IIRC - Trataré de encontrar una referencia y publicarlo aquí).
Sí, estoy de acuerdo con usted y Fredrik. Si pudieras desenterrar esas referencias, ciertamente estaría agradecido. ¡Gracias! –
¿Alguna idea de cómo mostrarías la zona horaria? – nickf
Para cualquiera que use Ruby's ['strftime'] (http://apidock.com/ruby/DateTime/strftime), la cadena del argumento equivalente es' "% Y-% m-% d% H:% M:% S" ' –
Creo que si utilizó el tipo de datos double
, el recálculo en Excel funcionaría muy bien.
Lo intenté y funciona muy bien. Solo tengo que decirle a Excell que el formato de esa columna en particular es Fecha/Hora. No detectará esto automáticamente desde el CSV, ya que obviamente no describe los datos –
Supongo que ISO-format es una buena idea. (Wikipedia article, también con información de tiempo)
De acuerdo; esta parece ser la mejor apuesta. –
(Votación negativa; de hecho, no, Excel no reconoce ese formato) – Doug
@Doug Acabo de ejecutar una prueba para verificarlo: funciona bien en Office 2010, edición en inglés, intenté con mis dos configuraciones locales (sueco, que sucede que usa el formato ISO para las fechas, y el inglés de EE. UU.). Fuera de interés: ¿en qué entorno falló? No me sorprende en absoluto que funcione para algunos y falla para algunos: Excel no es realmente una maravilla de consistencia en mi experiencia ... –
La sugerencia anterior de utilizar "aaaa-MM-dd HH: mm: ss" está bien, aunque creo que Excel tiene una resolución de tiempo mucho más fina que eso. Creo que this post es bastante creíble (sigue el hilo y verás mucha aritmética y experimentar con Excel), y si es correcto, tendrás tus milisegundos. Puede tachuelas en lugares decimales al final, es decir "aaaa-mm-dd hh: mm: ss.000".
Debe tener en cuenta que Excel puede no necesariamente formatear los datos (sin intervención humana) de tal manera que verá toda esa precisión. En mi computadora en el trabajo, cuando configuro un CSV con datos "aaaa-mm-dd hh: mm: ss.000" (a mano usando el Bloc de notas), obtengo "mm: ss.0" en la celda y "m"/d/aaaa hh: mm: ss AM/PM "en la barra de fórmulas.
Para el máximo de información [1] transportado en las células sin la intervención humana, es posible que desee dividir su marca de tiempo en una parte de fecha y una porción de tiempo, con la porción de tiempo sólo para el segundo. Me parece que Excel quiere darte como máximo tres "niveles" visibles (donde fracciones de segundo son su propio nivel) en una celda determinada, y quieres siete: años, meses, días, horas, minutos, segundos, y fracciones de segundo.
O, si no necesita que la marca de tiempo sea legible por el ser humano, pero quiere que sea lo más precisa posible, puede preferir simplemente almacenar un número grande (internamente, Excel solo usa el número de días) , incluidos los días fraccionarios, desde una fecha "época").
[1] Es decir, información numérica. Si desea ver tanta información como sea posible pero no le importa hacer cálculos con ella, puede crear algún formato que Excel definitivamente analizará como una cadena, y así lo dejará en paz; p.ej. "aaaammdd.hhmmss.000".
El formato "aaaa-MM-dd hh: mm: ss.000" no funciona en todas las configuraciones regionales. Para algunos (al menos danés) "aaaa-MM-dd hh: mm: ss, 000" funcionará mejor.
Extrañamente, Excel 2010 no detecta las fechas cuando la parte en milisegundos es 000. Cualquier otra acción funcionará. –
En cuanto a las zonas horarias. Tengo que almacenar el desplazamiento UTC como segundos de UTC de esa manera las fórmulas en Excel/OpenOffice pueden eventualmente localizar fechas de tiempo. Descubrí que esto es más fácil que almacenar cualquier número que tenga un 0 en frente de él. -0900 no se analizó correctamente en ningún sistema de hoja de cálculo y la importación fue casi imposible de entrenar.
Vaya a la configuración de idioma en el Panel de control, luego en Opciones de formato, seleccione una configuración regional y vea el formato de fecha real para la configuración regional elegida utilizada por Windows de forma predeterminada. Sí, ese formato de marca de tiempo es sensible a la configuración regional. Excel usa esos formatos al analizar CSV.
Además, si la configuración regional utiliza caracteres que van más allá de ASCII, deberá emitir CSV en la correspondiente página de códigos "ANSI" pre-Unicode de Windows, p. CP1251. Excel no aceptará UTF-8.
Pruebe MM/dd/aaaa hh: mm: ss un formato.
código de Java para crear un archivo XML. .
"aaaa hh-mm-dd: mm: ss.000"xmlResponse.append ("mydate>") append (this.formatDate (resultSet.getTimestamp ("fecha"), "MM/dd/aaaa hh: mm: ss a")). adjuntar("");
public String formatDate(Date date, String format)
{
String dateString = "";
if(null != date)
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
dateString = dateFormat.format(date);
}
return dateString;
}
formato no funciona en todas las configuraciones regionales. Para , algunos (al menos en danés) "aaaa-mm-dd hh: mm: ss, 000" funcionarán mejor.
como respuesta por user662894.
Quiero agregar: no intente obtener los microsegundos de, por ejemplo, el tipo de datos datetime2 de SQL Server: Excel no puede manejar más de 3 segundos fraccionarios (es decir, milisegundos).
"aaaa hh-mm-dd: mm: ss.000000" Así que no va a funcionar, y cuando Excel se alimenta este tipo de cadena (del archivo CSV), se llevará a cabo el redondeo en lugar de truncamiento.
Esto puede estar bien, excepto cuando los asuntos de precisión de microsegundos, en cuyo caso son más conveniente no activar un reconocimiento automático de tipo de datos, pero sólo mantener la cadena como de cadena ...
- 1. sqlite formato de marca de tiempo
- 2. UNIX Marca de tiempo para MySQL DATETIME
- 3. Fecha/hora de PHP para la marca de tiempo (formato personalizado)
- 4. Conversión de marca de tiempo en Oracle para YYYY-MM-DD HH: MM: SS formato
- 5. de expresiones regulares para validar una marca de tiempo
- 6. parte de milisegundos de marca de tiempo
- 7. Lote: Marca de tiempo a UNIX Tiempo
- 8. en postgres, ¿puede establecer el formato predeterminado para una marca de tiempo, por sesión o globalmente?
- 9. Convirtiendo la marca de tiempo local a la marca de tiempo UTC en Java
- 10. Python pytz Convertir una marca de tiempo (formato de cadena) de una zona horaria a otra
- 11. Marca de tiempo personalizada en emacs orgmode
- 12. ¿Cómo uso el tiempo local de Perl con impresión para obtener la marca de tiempo?
- 13. jQuery Hace tiempo de una marca de tiempo?
- 14. Analizar marca de tiempo con a.m./p.m
- 15. Cómo convertir una marca de tiempo de Unix en una marca de tiempo ISO8601 en PHP?
- 16. ¿Cómo obtengo la marca de tiempo actual en Go?
- 17. Constantes de tiempo de compilación flexible - Marca de tiempo
- 18. Dos sql para la fecha de marca de tiempo ordenada
- 19. ¿Número de versión o marca de tiempo para concurrencia optimista?
- 20. Diferencia de marca de tiempo en horas para PostgreSQL
- 21. ¿Existe una manera simple de convertir una marca de tiempo ISO8601 en un formato NSDate?
- 22. fecha php de marca de tiempo Unix
- 23. marca de tiempo Unix VS fecha y hora
- 24. marca de tiempo de 3 meses atrás
- 25. MySQL inserción de marca de tiempo retardado
- 26. Campos de marca de tiempo en django
- 27. Python datetime to XML Formato de marca de tiempo del esquema
- 28. En Python, ¿cómo puedo convertir este formato en una marca de tiempo de Unix?
- 29. MySQL Query para eliminar filas cuya marca de tiempo es anterior a la marca de tiempo actual
- 30. Eliminar parte del tiempo de una marca de tiempo
qué idioma se está utilizando para la creación de la salida ? –