Używam funkcji strptime(...)
w funkcji mojego pakietu. Muszę przeanalizować ciąg znaków przy użyciu określonych ustawień lokalnych i zastosować Sys.setlocale
jako obejście, aby uzyskać angielskie ustawienia lokalizacji. Aby zredukować efekty uboczne, przywrócone zostanie poprzednie ustawienie lokalne. Kod podstawowy fragment funkcji wygląda następująco:Sys.setlocale: żądanie ustawienia lokalizacji ... nie może być honorowane
#parameter settings
sometext <- "Mon, 14 Mar 2011 23:42:16 GMT"
timeFormat <- "%a, %d %b %Y %H:%M:%S"
timeZone <- "GMT"
#get current locale
loc <- Sys.getlocale("LC_TIME")
#set british localization
dummy <- Sys.setlocale("LC_TIME", "en_GB.UTF-8")
#parse datetime string
time <- strptime(sometext, format = timeFormat, tz= timeZone)
#set local back
dummy <- Sys.setlocale("LC_TIME", loc)
Niestety, mój kolega dostaje następujące ostrzeżenie przy korzystaniu z tej funkcji:
In Sys.setlocale("LC_TIME", "en_GB.UTF-8") :
OS reports request to set locale to "en_GB.UTF-8" cannot be honored
na moim komputerze wszystko działa poprawnie. Czy jest lepsza (i niezależna od zainstalowanej lokalizacji R) sposób wykonania tego zadania? Generalnie chciałbym użyć strptime, ponieważ pozwala on na bardzo elastyczny sposób analizowania łańcuchów datetime.
Edytowałem pytanie z przykładem czegoś i timeformatu. ponieważ instalacja lokalizacji nie zależy od systemu operacyjnego, inna opcja byłaby miła ... – user625626
@ user625626: dziękuję za aktualizację, a także za zwrócenie na nią uwagi. Poprawiłem odpowiedź i mam nadzieję, że to może pomóc. – daroczig
jep - działa na systemie Linux i Windows - dziękuję bardzo! – user625626