2011-12-16 12 views
9

Jestem pewien, że jest to dość proste, ale nie jestem w stanie wyodrębnić różnych peices czasu z daty systemowej. Po prostu nie jestem pewien, dlaczego nie mogę dokładnie wyodrębnić obecnych minut i sekund za pomocą% M lub% S. jakieś pomysły?Uzyskaj aktualny czas, w tym sekundy z Sys.Date() w R

Obecnie jest 12:38 na moim komputerze.

> format(Sys.Date(), "%c") 
[1] "12/16/2011 12:00:00 AM" 

> R.Version() 
$platform 
[1] "i386-pc-mingw32" 

$arch 
[1] "i386" 

$os 
[1] "mingw32" 

$system 
[1] "i386, mingw32" 

$status 
[1] "" 

$major 
[1] "2" 

$minor 
[1] "14.0" 

$year 
[1] "2011" 

$month 
[1] "10" 

$day 
[1] "31" 

$`svn rev` 
[1] "57496" 

$language 
[1] "R" 

$version.string 
[1] "R version 2.14.0 (2011-10-31)" 
+0

Działa dla mnie 'format (Sys.time(),"% H: % M:% S ")' "14:49:41" –

Odpowiedz

12

Do tego prawdopodobnie chcesz użyć Sys.time() zamiast Sys.Date().

format(Sys.time(), "%S") 

Sys.Date zwraca Date obiekt, który jest w zasadzie ciąg znaków z postaci jak "yyyy-MM-DD". Nie rejestruje godzin, minut ani sekund.

(To było nieco ukryta przed tobą w swoim powołaniu do format(Sys.Date, "%S") ponieważ wywoływane metody, format.Date który konwertuje obiekt do POSIXlt obiektu robi ma godziny, minuty i sekundy Date. W tej konwersji, Date obiekt traktowany jest tak, jakby reprezentował czas o północy czasu GMT - stąd wartość "00" zawsze zwraca dla elementu sekundowego.)

+0

Tak jak powiedziałem, brakowało mi czegoś bardzo oczywistego. Dzięki! – Btibert3

+0

Cóż, jeśli chodzi o brak "oczywistych" rzeczy związanych z manipulacjami w czasie dnia, możesz być pewien [zawsze będziesz miał dużo dobrego towarzystwa!] (Http://msmvps.com/blogs/jon_skeet/archive/2009 /11/02/omg-ponies-aka-humanity-epic-fail.aspx) –

+0

[Zaktualizowany link do odnośnika w komentarzu powyżej] (http://codeblog.jonskeet.uk/2009/11/02/omg-ponies- aka-humanity-epic-fail /). –