我在使用我的軟件包的函數中使用了strptime(...)
。我需要使用特定的本地設置解析字符串,並使用Sys.setlocale
作爲解決方法來獲取英文本地化設置。爲了減少副作用,以前的本地設置會在之後恢復。 函數的基本代碼片段如下所示:Sys.setlocale:設置區域設置的請求......無法被尊重
#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)
不幸的是,使用該功能時,我的一個同事得到以下警告:
In Sys.setlocale("LC_TIME", "en_GB.UTF-8") :
OS reports request to set locale to "en_GB.UTF-8" cannot be honored
在我的電腦一切正常。 執行此任務的方式是否更好(並且與已安裝的R本地化無關)?通常我想使用strptime,因爲它允許非常靈活的解析日期時間字符串。
我已經用sometext和timeformat的例子編輯了這個問題。因爲語言環境的安裝不是真的依賴於操作系統,因此其他一些選項會很好... – user625626 2011-03-17 22:29:50
@ user625626:感謝您的更新,並將我的注意力指向了那裏。我修改了我的答案,並希望這可以幫助。 – daroczig 2011-03-17 23:11:23
jep - 它適用於linux和windows - 非常感謝你! – user625626 2011-03-17 23:27:58