Namespaces
Variants

std:: asctime

From cppreference.net
< cpp ‎ | chrono ‎ | c
Défini dans l'en-tête <ctime>
char * asctime ( const std:: tm * time_ptr ) ;

Convertit le temps calendaire donné std::tm en une représentation textuelle de la forme fixe de 25 caractères suivante : Www Mmm dd hh : mm : ss yyyy\n .

  • Www - jour de la semaine abrégé en anglais sur trois lettres provenant de time_ptr - > tm_wday , l'un des Mon , Tue , Wed , Thu , Fri , Sat , Sun .
  • Mmm - nom de mois abrégé en anglais sur trois lettres provenant de time_ptr - > tm_mon , l'un des Jan , Feb , Mar , Apr , May , Jun , Jul , Aug , Sep , Oct , Nov , Dec .
  • dd - jour du mois sur 2 chiffres provenant de timeptr - > tm_mday comme imprimé par sprintf en utilisant % 2d .
  • hh - heure sur 2 chiffres provenant de timeptr - > tm_hour comme imprimé par sprintf en utilisant % .2d .
  • mm - minute sur 2 chiffres provenant de timeptr - > tm_min comme imprimé par sprintf en utilisant % .2d .
  • ss - seconde sur 2 chiffres provenant de timeptr - > tm_sec comme imprimé par sprintf en utilisant % .2d .
  • yyyy - année sur 4 chiffres provenant de timeptr - > tm_year + 1900 comme imprimé par sprintf en utilisant % 4d .

Le comportement est indéfini si un membre de * time_ptr est en dehors de sa plage normale.

Le comportement est indéfini si l'année civile indiquée par time_ptr - > tm_year a plus de 4 chiffres ou est inférieure à l'année 1000.

La fonction ne prend pas en charge la localisation, et le caractère de nouvelle ligne ne peut pas être supprimé.

La fonction modifie le stockage statique et n'est pas thread-safe.

Table des matières

Paramètres

time_ptr - pointeur vers un std::tm objet spécifiant l'heure à afficher

Valeur de retour

Pointeur vers une chaîne de caractères statique terminée par un caractère nul contenant la représentation textuelle de la date et de l'heure. La chaîne peut être partagée entre std::asctime et std::ctime , et peut être écrasée à chaque invocation de l'une de ces fonctions.

Notes

Cette fonction renvoie un pointeur vers des données statiques et n'est pas sûre dans un contexte multithread. POSIX marque cette fonction comme obsolète et recommande à la place std::strftime dépendant des paramètres régionaux. Dans std::locale ("C") la chaîne de format std::strftime "%c \n " correspondra exactement à la sortie de std::asctime , tandis que dans d'autres paramètres régionaux la chaîne de format "%a %b %e %H:%M:%S %Y \n " sera une correspondance potentiellement plus proche mais pas toujours exacte.

POSIX limite les comportements indéfinis uniquement aux cas où la chaîne de sortie dépasserait 25 caractères, lorsque timeptr->tm_wday ou timeptr->tm_mon ne sont pas dans les plages attendues, ou lorsque timeptr->tm_year dépasse INT_MAX - 1990 .

Certaines implémentations traitent timeptr - > tm_mday == 0 comme désignant le dernier jour du mois précédent.

Exemple

#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
    const std::time_t now = std::time(nullptr);
    for (const char* localeName : {"C", "en_US.utf8", "de_DE.utf8", "ja_JP.utf8"})
    {
        std::cout << "locale " << localeName << ":\n" << std::left;
        std::locale::global(std::locale(localeName));
        std::cout << std::setw(40) << "    asctime" << std::asctime(std::localtime(&now));
        // strftime output for comparison:
        char buf[64];
        if (strftime(buf, sizeof buf, "%c\n", std::localtime(&now)))
            std::cout << std::setw(40) << "    strftime %c" << buf;
        if (strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %Y\n", std::localtime(&now)))
            std::cout << std::setw(40) << "    strftime %a %b %e %H:%M:%S %Y" << buf;
        std::cout << '\n';
    }
}

Sortie possible :

locale C:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Wed Nov  4 00:45:01 2020
    strftime %a %b %e %H:%M:%S %Y       Wed Nov  4 00:45:01 2020
locale en_US.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Wed 04 Nov 2020 12:45:01 AM UTC
    strftime %a %b %e %H:%M:%S %Y       Wed Nov  4 00:45:01 2020
locale de_DE.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Mi 04 Nov 2020 00:45:01 UTC
    strftime %a %b %e %H:%M:%S %Y       Mi Nov  4 00:45:01 2020
locale ja_JP.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         2020年11月04日 00時45分01秒
    strftime %a %b %e %H:%M:%S %Y       水 11月  4 00:45:01 2020

Voir aussi

convertit un objet std::time_t en une représentation textuelle
(fonction)
convertit un objet std::tm en une représentation textuelle personnalisée
(fonction)
(C++11)
formate et affiche une valeur de date/heure selon le format spécifié
(modèle de fonction)
Documentation C pour asctime