Jakich znaków można użyć do zastąpienia dwukropka w nazwach folderów przy użyciu pory dnia?

9

Często jest to wygodne, aby nazwy plików i folderów z datą i godziną, takich jak standardowe ISO 8601 formacie: 2014-12-10T22:35:28.460Z.

Niestety system plików HFS + na komputerze Mac używa COLON jako separatora ścieżek, podobnie jak systemy uniksowe używają SOLIDUS /(ukośnik), a systemy operacyjne Microsoft używają REVERSE SOLIDUS \(ukośnik odwrotny). Aby nazwać plik lub folder, należy zachować wszystkie trzy znaki, aby zachować zgodność.

Jaką postać można powszechnie stosować jako zamiennik COLON?

  • Korzystanie z HYPHEN -utrudnia programowe odwrócenie konwersji do standardowego formatu.
  • Podobnie użycie FULL STOP .(kropka) utrudnia odwrotną konwersję, ponieważ będą one błędnie interpretowane jako ułamki sekund.

Na przykład podczas programowania w Javie 8 w systemie OS X Mountain Lion wywołanie File::mkdir()ciągu 2014-12-11T21:33:08powoduje powstanie folderu o nazwie 2014-12-11T21/33/08.

Basil Bourque
źródło
3
Prawie wszystkie współczesne systemy plików obsługują spacje w nazwach plików. Ponadto, jeśli czytelność nie stanowi problemu, to po prostu wyeliminuj obraźliwe znaki i zastosuj ustawiony format, np .: RRRRMMDDTHHMMSSZ.
Brian Duke,
Dlaczego nie skorzystać z: wydaje się, że działa poprawnie z powłoki. Podejrzewam, że tylko OS <= 9 i classic mają problem z: więc w tej chwili jest problem. AL: aby systemy operacyjne MS mogły używać / jako podziału katalogu
użytkownik151019,
@ Mark Nowoczesne wersje Findera mogą obsługiwać dwukropek. Ale podczas dostępu programowego pojawiają się problemy.
Basil Bourque,
Nigdy nie miałem problemów z dostępem do pliku z dwukropkiem w nazwie. Po prostu wygląda dziwnie z Findera, ponieważ został zmieniony na ukośnik.
0942v8653,
2
W szczególności HFS + pozwala na nazwy plików zawierające / ale nie dwukropek. Gdy w terminalu (lub gdziekolwiek dostęp do systemu plików jest uzyskiwany za pomocą POSIX API zamiast Macintosh API), nazwa / zapisana na dysku jest tłumaczona na: w pamięci RAM, a: w pamięci RAM jest tłumaczona z powrotem na / jako nową nazwę pliku jest przechowywany w katalogu. Programy korzystające z tradycyjnego interfejsu API systemu Macintosh nie ulegają zmianie i wyświetlają / tak, jak na dysku. W ten sposób każdy interfejs API ma tylko jeden zabroniony znak (cóż, dwa, jeśli policzymy NUL) i tylko jeden separator nazw plików, bez zakłócania się.
ganbustein

Odpowiedzi:

6

Odmiana „podstawowa” ISO 8601

Można uniknąć używania dwukropka, stosując ciągi formatu „podstawowego” ISO 8601 ( YYYYMMDDTHHMMSSZ) do nazewnictwa plików i folderów. Standard pozwala pominąć separatory w YYYY-MM-DDTHH:MM:SSZformacie.

Tak więc oba te przykłady są zgodne ze standardem:

2016-03-27T07: 01: 02Z

20160327T070102Z

Jeśli potrzebujesz przetworzyć te ciągi za pomocą określonych języków programowania lub skryptów, być może będziesz musiał przekonwertować je na rozszerzony format, który zawiera separatory (łączniki, dwukropki) i informacje o strefie czasowej.

Międzynarodowa standardowa notacja daty i godziny - „Jeśli data i wartość czasu są przechowywane razem w jednym polu danych, wówczas ISO 8601 sugeruje, że powinny być one oddzielone wielką literą łacińską T, jak w 19951231T235959”. Więc Tśrodek jest opcjonalny ( 19951231235959), ale sugerowany.

Omar Vasquez
źródło
Dobre rozwiązanie. Rzeczywiście lepsze biblioteki daty i godziny, takie jak framework java.time wbudowany w Javę 8 i nowsze wersje, a także Joda-Time nie mają problemu z analizowaniem ani formatu „podstawowego”, ani dłuższego formatu zawierającego separatory.
Basil Bourque,
3

Podniesiony dwukropek Unicode 0x02F8 (podniesiony dwukropek ˸ vs dwukropek:) nie byłby interpretowany jako separator przez Findera lub inne skrypty. (Więcej informacji o podniesionym jelicie grubym tutaj: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

Sposób wprowadzenia tego znaku różni się w zależności od wersji systemu OS X. Więcej informacji można znaleźć na stronie wsparcia Apple: http://support.apple.com/en-us/HT201586

Kent
źródło
3
Ciekawy pomysł. Ta odpowiedź jest prawie zbyt mądra. Wyglądający tak jak zwykły COLON może powodować dezorientację podczas analizy.
Basil Bourque,
0

Hebrajska interpunkcja ׃ działa świetnie dla mnie ... Unicode 05C3 ...

skalisty
źródło
2
uważaj, że hebrajski dwukropek może naprawdę popsuć rzeczy, gdy sąsiaduje z liczbami! Spróbuj pisać 1(dwukropek hebrajski) 2. Odwraca się jako 2:1! Coś w hebrajskim kierunku od prawej do lewej. W każdym razie byłoby to bardzo mylące, gdyby próbować używać języków od lewej do prawej.
wisbucky,
Tak, to chyba nie jest świetna alternatywa, jeśli rendery tekstowe próbują przełączyć się do trybu RTL, gdy napotykają tę postać :(
Matt M.
0

Też to zbadałem. Większość alternatywnych glifów ze słowem „grubego” w opisie są zdecydowanie nieatrakcyjne jako zamiennik okrężnicy ( ˸, ܄, , , :,, and꞉`).

Jest jeszcze inna alternatywa, że przynajmniej ma podobną szerokość znaków do pierwotnego okrężnicy - symbol matematyczny dla proporcji: . Wygląda świetnie w wielu czcionkach o stałej szerokości, ale jest nieco mała w domyślnej czcionce systemowej MacOS.

Tutaj jest używany w nazwie pliku:

/Users/me/Books/Book Title: Book Subtitle.pdf [ograniczony glif jelita grubego] /Users/me/Books/Book Title∶ Book Subtitle.pdf [dozwolony glif współczynnika]

Robert
źródło