2017-07-07 1 views
1

J'ai une colonne dans ma base de données en tant que datetime (facteur) avec les valeurs "15-10-2017 16:41:00".Supprimer le fuseau horaire pendant la conversion POSIXlt dans R

Je voulais que ces données soient converties en "2017-10-15 16:41:00". Lorsque j'essaie de convertir cela, je reçois aussi le fuseau horaire en sortie.

J'ai essayé d'utiliser tz = "", usetz = F mais pas d'utilisation. Des suggestions?

code:

as.POSIXlt ("15-10-2017 16:41:00", le format = "% d-% m-% Y% H:% M:% S") [1] "15/10/2017 16:41:00 IST"

Répondre

2

Sur la page d'aide de as.POSIXlt:

"" est l'heure actuelle zone

qui est la valeur par défaut.

C'est pourquoi cela ne fonctionne pas. Vous pouvez supprimer les informations fuseau horaire de cette façon, et il ne sera pas montrer lors de l'impression:

my_datetime <- as.POSIXlt("15-10-2017 16:41:00",format = "%d-%m-%Y %H:%M:%S") 
my_datetime$zone <- NULL 
my_datetime 

mais je ne comprends pas pourquoi vous voulez faire. Vous devriez convertir en GMT si vous ne voulez pas vous inquiéter du fuseau horaire. Aussi le paquet lubridate a une belle fonction force_tz si vous devez forcer des fuseaux horaires spécifiques.