2016-10-17 2 views
0

に変換します。MacOSを使用しています。私はこのようなフォーマットを生成しようとした「09:12 AM - Mon Oct-10-2016」の形式の文字列を

"09:12 AM - Mon Oct-10-2016" 

Sys.setlocale("LC_TIME", 'en_US.UTF-8') # set locale to EN 
f <- "%I:%M %p - %a %b-%m-%Y"    # define format 
z <- format(Sys.time(), format=f)   # get example 
z 
> "09:12 AM - Mon Oct-10-2016" 

をし、それを解析するが、それは動作しません、私は以下のような日付文字列を解析する困難を抱えています。

> strftime(z, format = f) 
Error in as.POSIXlt.character(x, tz = tz) : 
    character string is not in a standard unambiguous format 
> strptime(z, format = f) 
[1] NA 

説明する形式で文字列を解析するにはどうすればよいですか?

+0

は、あなたはこの1つを試してみましたか? :ライブラリ(任意の時間): anydate( "09:12 AM - Mon Oct-10-2016") – MFR

+0

@MFR 'anydate(" 09:12 AM - Mon Oct-10-2016 ")[1] NA' –

答えて

3
Sys.setlocale("LC_TIME", 'C') 
f <- "%I:%M %p - %a %b-%d-%Y" 
strptime("09:12 AM - Mon Oct-10-2016", format = f, tz = "GMT") 
#[1] "2016-10-10 09:12:00 GMT" 

10月が、一日ではありません。

1

あなたはまた、 'lubridate' を試すことができます。

require(lubridate) 
> parse_date_time("09:12 AM - Mon Oct-10-2016", "HMmdY") 
[1] "2016-10-10 09:12:00 UTC" 
+0

うわー、 'parse_date_time'は、必要な情報を特定して残りを捨てることにかなりスマートに思えます... –

+0

実際に私は09:12 AM - Oct Oct-10-2016(ここではテキスト情報) 。素晴らしい。 'parse_date_time'もこれを処理しますので、私のケースでは掃除の段階は時代遅れです。 –

+0

AM/PMフォーマットの場合、 '' HMmdY "'ではなく '' IMpmdY "'でなければなりません。 –