Pour développer la réponse de Ori Osherov
Vous pouvez utiliser le WinAPI pour obtenir la date et l'heure, cette méthode est spécifique à Windows, mais si vous ciblez uniquement Windows ou si vous utilisez déjà le WinAPI, alors c'est certainement une possibilité1:
Vous pouvez obtenir à la fois l'heure et la date en utilisant la struct
SYSTEMTIME
. Vous devez également appeler l'une des deux fonctions (soit GetLocalTime()
soit GetSystemTime()
) pour remplir la struct.
GetLocalTime()
vous donnera l'heure et la date spécifiques à votre fuseau horaire.
GetSystemTime()
vous donnera l'heure et la date _en UTC_.
La struct
SYSTEMTIME
a les membres suivants:
wYear
, wMonth
, wDayOfWeek
, wDay
, wHour
, wMinute
, wSecond
et wMilliseconds
Ensuite, vous devez simplement accéder à la struct de manière régulière
Exemple de code actuel:
#include // utilisé pour définir SYSTEMTIME , GetLocalTime() et GetSystemTime()
#include // Pour printf() (on pourrait sinon utiliser l'équivalent WinAPI)
int main(void) { // Ou n'importe quel autre point d'entrée WinAPI (par exemple WinMain/wmain)
SYSTEMTIME t; // Déclarer la struct SYSTEMTIME
GetLocalTime(&t); // Remplir la struct pour qu'elle puisse être utilisée
// Utiliser GetSystemTime(&t) pour obtenir l'heure UTC
printf("Année: %d, Mois: %d, Jour: %d, Heure: %d, Minute:%d, Seconde: %d, Milliseconde: %d", t.wYear, t.wMonth, t.wDay, t.wHour, t.wMinute, t.wSecond, t.wMilliseconds); // Renvoyer l'année, le mois, le jour, l'heure, les minutes, les secondes et les millisecondes dans cet ordre
return 0;
}
(Codé pour la simplicité et la clarté, voir la réponse originale pour une méthode mieux formatée)
La sortie ressemblera à quelque chose comme ceci:
Année: 2018, Mois: 11, Jour: 24, Heure: 12, Minute:28, Seconde: 1, Milliseconde: 572
Références utiles:
Toute la documentation WinAPI (la plupart déjà listée ci-dessus):
Un tutoriel très bon pour les débutants sur ce sujet par ZetCode:
Opérations simples avec la date et l'heure sur Codeproject:
1: Comme mentionné dans les commentaires de la réponse d'Ori Osherov ("Étant donné que l'OP a commencé avec la date +%F, ils n'utilisent presque certainement pas Windows. - melpomene 9 sept à 22:17
"), l'OP n'utilise pas Windows, cependant, comme cette question n'a pas de balise spécifique à la plate-forme (ni ne mentionne nulle part que la réponse devrait être pour ce système particulier), et qu'il s'agit l'un des résultats les plus pertinents lorsque l'on google "obtenir l'heure en c", les deux réponses sont utiles ici, certains utilisateurs recherchant une réponse à cette question peuvent être sur Windows et il leur sera donc utile.