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.


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.


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


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 ...


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]

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.