Quais caracteres podem ser usados ​​para substituir dois pontos nos nomes de pastas usando uma hora do dia?

9

Muitas vezes é conveniente para arquivos de nomes e pastas com uma data e hora, como a norma ISO 8601 formato: 2014-12-10T22:35:28.460Z.

Infelizmente, o sistema de arquivos HFS + do Mac usa o COLON como um separador de caminho, assim como os sistemas operacionais Unix usam SOLIDUS /(barra) e os sistemas operacionais Microsoft usam REVERSE SOLIDUS \(barra invertida). Todos os três caracteres devem ser evitados ao nomear um arquivo ou pasta para compatibilidade.

Qual personagem pode ser usado como substituto do COLON?

  • O uso de um HYPHEN -torna complicado reverter programaticamente a conversão para o formato padrão.
  • Da mesma forma, o uso de uma parada completa .(ponto final) dificulta a conversão reversa, pois eles serão mal interpretados como segundos fracionários.

Por exemplo, ao programar em Java 8 no OS X Mountain Lion, a chamada File::mkdir()de string 2014-12-11T21:33:08resulta em uma pasta chamada 2014-12-11T21/33/08.

Basil Bourque
fonte
3
Praticamente todos os sistemas de arquivos modernos suportam espaços nos nomes dos arquivos. Além disso, se a legibilidade não for uma preocupação, por que não apenas eliminar os caracteres incorretos e usar um formato definido, por exemplo: AAAAMMDDTHHMMSSZ.
Brian Duke
Por que não usar apenas: parece funcionar bem no shell. Eu suspeito que apenas o SO <= 9 e o clássico tenham um problema: então hoje em dia é um problema. AL: para que os sistemas operacionais MS possam usar / como uma divisão de diretório
user151019
As versões modernas do Finder podem lidar com dois pontos. Mas durante o acesso programático, surgem problemas.
Basil Bourque
Nunca tive problemas para acessar um arquivo com dois pontos no nome. Parece estranho no Finder, pois mudou para uma barra.
0942v8653
2
Especificamente, o HFS + permite que os nomes de arquivos contenham / mas não dois pontos. Quando no Terminal (ou em qualquer lugar em que o sistema de arquivos é acessado usando a API POSIX em vez da API do Macintosh), o / no nome como armazenado no disco é convertido para: na RAM e: na RAM é convertido de volta para / como um novo nome de arquivo é armazenado no catálogo. Os programas que usam a API tradicional do Macintosh não são afetados e veem o / exatamente como aparece no disco. Dessa forma, cada API possui apenas um único caractere proibido (bem, dois se você contar NUL) e apenas um único separador de nome de arquivo, sem interferir um no outro.
ganbustein

Respostas:

6

Variação “básica” da ISO 8601

Você pode evitar o uso de dois pontos empregando cadeias de formato “básico” ISO 8601 ( YYYYMMDDTHHMMSSZ) para nomear arquivos e pastas. O padrão permite que os separadores sejam omitidos do YYYY-MM-DDTHH:MM:SSZformato.

Portanto, ambos os exemplos são válidos sob o padrão:

2016-03-27T07: 01: 02Z

20160327T070102Z

Se você precisar processar essas strings com determinadas linguagens de programação ou de script, talvez seja necessário convertê-las para o formato estendido que incorpore separadores (hífens, dois pontos) e informações de fuso horário.

Notação internacional de data e hora padrão - "Se uma data e um valor de hora forem armazenados juntos em um único campo de dados, a ISO 8601 sugere que eles sejam separados por uma letra maiúscula em latim T, como em 19951231T235959". Portanto T, o meio é opcional ( 19951231235959), mas sugerido.

Omar Vasquez
fonte
Boa solução. De fato, as melhores bibliotecas de data e hora, como a estrutura java.time , incorporada no Java 8 e posterior, bem como o Joda-Time , não têm problemas para analisar o formato “básico” ou o formato mais longo que contém separadores.
Basil Bourque 28/03
3

Os dois pontos levantados, Unicode 0x02F8 (dois pontos levantados ˸ vs dois pontos :) não seriam interpretados como um separador pelo Finder ou outros scripts. (Mais informações sobre o cólon levantado aqui: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

A maneira de inserir esse caractere varia, dependendo da sua versão do OS X. Mais detalhes podem ser encontrados na página de suporte da Apple: http://support.apple.com/en-us/HT201586

Kent
fonte
3
Idéia interessante. Essa resposta é quase inteligente demais. Parecer tanto com o COLON comum pode causar confusão ao analisar.
Basil Bourque
0

A pontuação hebraica ׃ funciona muito bem para mim ... unicode 05C3 ...

rochoso
fonte
2
cuidado, esse cólon hebraico pode realmente atrapalhar as coisas quando adjacente a números! Tente digitar 1(dois pontos em hebraico) 2. Torna para trás como 2:1! Algo a ver com a direção hebraica da direita para a esquerda. De qualquer forma, seria extremamente confuso se tentasse usar com idiomas da esquerda para a direita.
wisbucky
Yea que provavelmente não é uma ótima alternativa se prestadores de texto tente alternar para o modo RTL quando se deparam com este personagem :(
Matt M.
0

Eu também investiguei isso. A maioria dos glifos alternativos com a palavra 'cólon' na descrição são decididamente desinteressante como um substituto dois pontos ( ˸, ܄, , , :,, and꞉`).

Não há outra alternativa que pelo menos tem uma largura de caráter semelhante ao do cólon original - o símbolo matemático para uma relação: . Parece ótimo em várias fontes monoespaçadas, mas é um pouco pequeno na fonte padrão do sistema MacOS.

Aqui está sendo usado em um nome de arquivo:

/Users/me/Books/Book Title: Book Subtitle.pdf [glifo do cólon restrito] /Users/me/Books/Book Title∶ Book Subtitle.pdf [glifo de proporção permitida]

Robert
fonte