¿Qué caracteres se pueden usar para sustituir los dos puntos en los nombres de carpeta usando una hora del día?

9

A menudo es conveniente nombrar archivos y carpetas con una fecha y hora, como norma ISO 8601 formato: 2014-12-10T22:35:28.460Z.

Desafortunadamente, el sistema de archivos HFS + de Mac usa COLON como un separador de ruta al igual que los sistemas operativos tipo Unix usan SOLIDUS /(barra oblicua) y los sistemas operativos Microsoft usan SOLIDUS REVERSO \(barra invertida). Deben evitarse los tres caracteres al nombrar un archivo o carpeta por compatibilidad.

¿Qué personaje podría usarse comúnmente como un reemplazo para el COLON?

  • El uso de un HYPHEN -hace que sea difícil revertir mediante programación la conversión al formato estándar.
  • De manera similar, el uso de una PARADA COMPLETA .(período) dificulta la conversión inversa, ya que se interpretarán erróneamente como segundos fraccionarios.

Por ejemplo, al programar en Java 8 en OS X Mountain Lion, solicitar resultados de File::mkdir()cadena 2014-12-11T21:33:08en una carpeta llamada 2014-12-11T21/33/08.

Albahaca Bourque
fuente
3
Casi todos los sistemas de archivos modernos admiten espacios en los nombres de archivo. Además, si la legibilidad no es una preocupación, ¿por qué no simplemente eliminar los caracteres ofensivos y usar un formato establecido, por ejemplo: AAAAMMDDTHHMMSSZ?
Brian Duke
¿Por qué no usar el: parece funcionar bien desde el shell? Sospecho que solo OS <= 9 y classic tienen un problema con: por lo que hoy en día es un problema. AL: así MS sistemas operativos puede usar / como una fracción de directorio
user151019
@Mark Las versiones modernas del Finder pueden manejar dos puntos. Pero durante el acceso programático, surgen problemas.
Basil Bourque
Nunca he tenido problemas para acceder a un archivo con dos puntos en el nombre. Simplemente se ve raro desde Finder, ya que se cambió a una barra oblicua.
0942v8653
2
Específicamente, HFS + permite que los nombres de archivo contengan / pero no dos puntos. Cuando se encuentra en la Terminal (o en cualquier lugar al que se accede al sistema de archivos utilizando la API POSIX en lugar de la API de Macintosh), el / en el nombre tal como está almacenado en el disco se traduce a: en RAM, y: en RAM se traduce nuevamente a / como un nuevo nombre de archivo Se almacena en el catálogo. Los programas que usan la API tradicional de Macintosh no se ven afectados, y ven el / tal como aparece en el disco. De esta manera, cada API tiene solo un carácter prohibido (bueno, dos si cuenta NUL) y solo un separador de nombre de archivo, sin interferir entre sí.
ganbustein

Respuestas:

6

ISO 8601 Variación "básica"

Puede evitar el uso de los dos puntos empleando cadenas de formato "básico" ( ) de ISO 8601YYYYMMDDTHHMMSSZ para nombrar archivos y carpetas. El estándar permite que los separadores se omitan del YYYY-MM-DDTHH:MM:SSZformato.

Entonces, ambos ejemplos son válidos bajo el estándar:

2016-03-27T07: 01: 02Z

20160327T070102Z

Si necesita procesar esas cadenas con ciertos lenguajes de programación o scripts, entonces tal vez deba convertirlas al formato extendido que incorpore separadores (guiones, dos puntos) e información de zona horaria.

Fecha y hora notación estándar internacional - "Si una fecha y un valor de tiempo se almacenan juntos en un solo campo de datos, entonces la norma ISO 8601 sugiere que deberían estar separados por una letra mayúscula latina T, como en 19951231T235959". Entonces, Ten el medio es opcional ( 19951231235959) pero sugerido.

Omar Vasquez
fuente
Buena solución. De hecho, las mejores bibliotecas de fecha y hora, como el marco java.time integrado en Java 8 y posterior, así como Joda-Time no tienen problemas para analizar el formato "básico" o el formato más largo que contiene separadores.
Basil Bourque
3

Los dos puntos elevados, Unicode 0x02F8 (dos puntos elevados ˸ frente a dos puntos:) no serían interpretados como un separador por Finder u otros scripts. (Más información sobre el colon elevado aquí: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

La forma de ingresar ese carácter varía, dependiendo de su versión de OS X. Se pueden encontrar más detalles en la página de soporte de Apple: http://support.apple.com/en-us/HT201586

Kent
fuente
3
Idea interesante. Esta respuesta es casi demasiado inteligente. Verse tanto como el COLON normal puede causar confusión al analizar.
Basil Bourque
0

La puntuación hebrea ׃ funciona muy bien para mí ... unicode 05C3 ...

rocoso
fuente
2
¡cuidado, que el colon hebreo realmente puede arruinar las cosas cuando está adyacente a los números! Intenta escribir 1(colon hebreo) 2. Se vuelve al revés como 2:1! Algo relacionado con la dirección hebrea de derecha a izquierda. De todos modos, sería extremadamente confuso si intentara usarlo con idiomas de izquierda a derecha.
wisbucky
Sí, eso probablemente no sea una gran alternativa si los renderizadores de texto intentan cambiar al modo RTL cuando se encuentran con este personaje :(
Matt M.
0

También he investigado esto. La mayoría de los glifos alternativos con la palabra 'dos puntos' en la descripción son decididamente poco atractivo como un reemplazo de dos puntos ( ˸, ܄, , , :,, and꞉`).

No hay otra alternativa que al menos tiene una anchura de carácter similar a los dos puntos originales - el símbolo matemático de una relación: . Se ve muy bien en varias fuentes monoespaciadas, pero es un poco pequeño en la fuente predeterminada del sistema MacOS.

Aquí se está utilizando en un nombre de archivo:

/Users/me/Books/Book Title: Book Subtitle.pdf [glifo de colon restringido] /Users/me/Books/Book Title∶ Book Subtitle.pdf [glifo de proporción permitida]

Robert
fuente