Conversion de format date-heure dans R avec format et strptime

Chaque fois que je veux extraire ou montrer une partie spécifique d’une date ou d’une heure, je suis perdu dans la documentation. Quelle lettre dois-je utiliser dans format() pour obtenir le nom du jour écrit en entier, dans ma langue, à partir de la date actuelle ? Est-ce “%d %m %Y”, “%a %d %b”, …?

On va faire un article court pour cette fois !

Créer un tableau de conversion date-heure en utilisant format et une locale spécifique

Au moment où je lance ce script, il est exactement :

today <- Sys.time()
today
## [1] "2020-09-10 23:31:45 CEST"

Maintenant, je peux utiliser Sys.setlocale() pour définir la langue dans laquelle je veux afficher la sortie. Avec toutes les lettres de l’alphabet, majuscules et minuscules, je peux maintenant voir directement quelle est la sortie de la fonction format() appliquée à une date (i.e. 2020-09-10) ou à une heure (i.e. 2020-09-10 23:31:45).

lct <- Sys.getlocale("LC_TIME")

res <- tibble::tibble(
  format = paste0("%", sort(c(letters, LETTERS))),
  date_locale_C = {Sys.setlocale("LC_TIME", "C");format(Sys.Date(), format)},
  time_locale_C = {Sys.setlocale("LC_TIME", "C");format(today, format)},
  date_locale_fr = {Sys.setlocale("LC_TIME", "fr_FR.UTF-8");format(Sys.Date(), format)},
  time_locale_fr = {Sys.setlocale("LC_TIME", "fr_FR.UTF-8");format(today, format)},
  date_locale_en = {Sys.setlocale("LC_TIME", "en_GB.UTF-8");format(Sys.Date(), format)},
  time_locale_en = {Sys.setlocale("LC_TIME", "en_GB.UTF-8");format(today, format)}
)

Sys.setlocale("LC_TIME", lct)
## [1] "fr_FR.UTF-8"
knitr::kable(res)
format date_locale_C time_locale_C date_locale_fr time_locale_fr date_locale_en time_locale_en
%a Thu Thu jeu. jeu. Thu Thu
%A Thursday Thursday jeudi jeudi Thursday Thursday
%b Sep Sep sept. sept. Sep Sep
%B September September septembre septembre September September
%c Thu Sep 10 00:00:00 2020 Thu Sep 10 23:31:45 2020 jeu. 10 sept. 2020 00:00:00 jeu. 10 sept. 2020 23:31:45 Thu 10 Sep 2020 00:00:00 UTC Thu 10 Sep 2020 23:31:45 CEST
%C 20 20 20 20 20 20
%d 10 10 10 10 10 10
%D 09/10/20 09/10/20 09/10/20 09/10/20 09/10/20 09/10/20
%e 10 10 10 10 10 10
%E %E %E %E %E %E %E
%f %f %f %f %f %f %f
%F 2020-09-10 2020-09-10 2020-09-10 2020-09-10 2020-09-10 2020-09-10
%g 20 20 20 20 20 20
%G 2020 2020 2020 2020 2020 2020
%h Sep Sep sept. sept. Sep Sep
%H 00 23 00 23 00 23
%i %i %i %i %i %i %i
%I 12 11 12 11 12 11
%j 254 254 254 254 254 254
%J %J %J %J %J %J %J
%k 0 23 0 23 0 23
%K %K %K %K %K %K %K
%l 12 11 12 11 12 11
%L %L %L %L %L %L %L
%m 09 09 09 09 09 09
%M 00 31 00 31 00 31
%n
%N %N %N %N %N %N %N
%o %o %o %o %o %o %o
%O %O %O %O %O %O %O
%p AM PM am pm
%P am pm am pm
%q %q %q %q %q %q %q
%Q %Q %Q %Q %Q %Q %Q
%r 12:00:00 AM 11:31:45 PM 12:00:00 11:31:45 12:00:00 am UTC 11:31:45 pm CEST
%R 00:00 23:31 00:00 23:31 00:00 23:31
%s 1599696000 1599773505 1599696000 1599773505 1599696000 1599773505
%S 00 45 00 45 00 45
%t
%T 00:00:00 23:31:45 00:00:00 23:31:45 00:00:00 23:31:45
%u 4 4 4 4 4 4
%U 36 36 36 36 36 36
%v %v %v %v %v %v %v
%V 37 37 37 37 37 37
%w 4 4 4 4 4 4
%W 36 36 36 36 36 36
%x 09/10/20 09/10/20 10/09/2020 10/09/2020 10/09/20 10/09/20
%X 00:00:00 23:31:45 00:00:00 23:31:45 00:00:00 23:31:45
%y 20 20 20 20 20 20
%Y 2020 2020 2020 2020 2020 2020
%z +0000 +0200 +0000 +0200 +0000 +0200
%Z UTC CEST UTC CEST UTC CEST

Peut-être que cette table de conversion date-heure sera utile à d’autres développeurs !



Citation :

Merci de citer ce travail avec :
Rochette Sébastien. (2020, sept.. 10). "Conversion de format date-heure dans R avec format et strptime". Retrieved from https://statnmap.com/fr/2020-09-10-conversion-de-format-date-heure-dans-r-avec-format-et-strptime/.


Citation BibTex :
@misc{Roche2020Conve,
    author = {Rochette Sébastien},
    title = {Conversion de format date-heure dans R avec format et strptime},
    url = {https://statnmap.com/fr/2020-09-10-conversion-de-format-date-heure-dans-r-avec-format-et-strptime/},
    year = {2020}
  }