comment faire pour convertir la date et l'heure de caractère de type datetime
salut comment puis-je convertir ce pour un objet de type datetime qui préserve à la fois la date et l'heure?
DateTime="2007-02-01 00:00:00"
Essayé
as.Date(DateTime,'%Y-%m-%d %H:%M:%S')
mais ne renvoie l'heure de la partie. ne pouvais pas comprendre comment, après avoir essayé strptime et lubridate. merci.
as.Date
retourne seulement la date du calendrier, parce que la classe Date
objets sont affichés que les dates du calendrier.OriginalL'auteur santoku | 2014-09-21
Vous devez vous connecter pour publier un commentaire.
@Richard Scriven souligné, vous ne devriez pas être à l'aide de
as.Date
parce que ce n'est pas un datetime classe. Voici quelques façons différentes:Vous n'avez pas à spécifier
format=
pouras.POSIXct
etas.POSIXlt
lorsque vous avez la%Y-%m-%d %H:%M:%S
format. Dans d'autres cas, comme%m/%d/%Y %H:%M:%S
, généralement, vous devez spécifier le format explicitement.2007-02-01 EST
peut ne pas être celui que l'OP veut car il ne contient pas00:00:00
dans le résultat.Hmm c'est un juste point de. Je sais que si vous avez un datetime avec
00:00:00
et un autre datetime qui est différente de zéro, le HMS dans undata.frame
, etc... il imprime les zéros - je.edata.frame(x=c(as.POSIXct(DateTime,tz=Sys.timezone()),as.POSIXct(DateTime,tz=Sys.timezone())+1))
(en utilisant les objets ci-dessus); je vais voir si il y a un moyen de le faire avec personne d'horodateurs.Merci! semble en format DateTime le hms n'est pas affichée, mais dans DateTime2 format c'est.
Droit - ce qui se passe à minuit (
00:00:00
) - et qu'il conserve l'information (il ne peut pas l'imprimer). Il montre les zéros si vous affichez une telle timestamp avec d'autres non-minuit de temps, comme dans mon commentaire ci-dessus, sinon vous devez le genre de hack de la mise en forme pour contourner ce problème, comme dans @jazzurro de la solution.Sauf si vous pouvez le trouver dans la documentation, je pense que ce serait une très bonne question. Par exemple, avec
lubridate
chargé, essayezdt <- as.POSIXct("2007-02-01 00:00:00"); hour(dt) <- hour(dt)+1; dt; hour(dt) <- hour(dt)-1; dt
. Minuit semble n'apparaissent jamaisOriginalL'auteur nrussell
Si vous voulez convertir spécifiquement "2007-02-01 00:00:00" à une date objet de classe, c'est ce que vous devez faire. Ceci est basé sur cette question et la réponse
OriginalL'auteur jazzurro