Unix temps est en secondes depuis l'epoch (1970-01-01). Selon ce que tu veux dire, vous pouvez convertir en un struct tm avec localtime ou la convertir en une chaîne de caractères avec strftime.
La valeur de retour des points d'un allouée statiquement
struct qui pourrait être remplacée par les appels ultérieurs à l'un des
fonctions de date et heure.
C'est ce que certains appellent données courses. Cela se produit lorsque deux ou plusieurs threads appel localtime simultanément.
Pour protéger de cela, certains suggèrent d'utiliser localtime_s, qui est un Microsoft seule fonction. Sur les systèmes POSIX, vous devez utiliser localtime_r au lieu
La localtime_r() la fonction fait la même chose,
mais stocke les données dans une struct.
Utilisation ressemblerait
time_t t = time(NULL);struct tm res;
localtime_r(&t,&res);
Merci, mais le compilateur dit "localtime" est depreceated. Puis-je tout simplement les ignorer et de les utiliser "#pragma warning(désactiver:4996)"? Voir les fonctions de temps de MSVC thread-safe? pour plus d'infos à ce sujet. C'est nouveau pour moi. Il semble être un Microsoft Windows question. Dans mon environnement (gcc 4.6.3) il n'y a pas d'avertissement. Le problème est que localtime() peut provoquer des conditions de course: cplusplus.com/reference/ctime/localtime Sur Windows, pensez localtime_s() à la place (voir stackoverflow.com/questions/14386923/...). Que faire si l'Époque que vous souhaitez convertir n'est pas à l'heure actuelle, mais tout autre moment donné (exemple: 1464545562043 )?
Je vais supposer que vous avez le temps dans un time_t. Vous devez d'abord convertir un struct tm. Vous pouvez faire cela avec localtime ou gmtime, selon si vous souhaitez utiliser le fuseau horaire local ou GMT.
Ensuite, vous pouvez mettre en forme que struct tm comme une chaîne de caractères avec strftime. Par exemple, pour obtenir une date comme 2012-11-24 que vous souhaitez utiliser le format "%Y-%m-%d".
Unix temps est en secondes depuis l'epoch (1970-01-01). Selon ce que tu veux dire, vous pouvez convertir en un
struct tm
avec localtime ou la convertir en une chaîne de caractères avec strftime.Le manuel de localtime états
C'est ce que certains appellent données courses. Cela se produit lorsque deux ou plusieurs threads appel
localtime
simultanément.Pour protéger de cela, certains suggèrent d'utiliser
localtime_s
, qui est un Microsoft seule fonction. Sur les systèmes POSIX, vous devez utiliserlocaltime_r
au lieuUtilisation ressemblerait
Voir les fonctions de temps de MSVC thread-safe? pour plus d'infos à ce sujet.
C'est nouveau pour moi. Il semble être un Microsoft Windows question. Dans mon environnement (gcc 4.6.3) il n'y a pas d'avertissement.
Le problème est que localtime() peut provoquer des conditions de course: cplusplus.com/reference/ctime/localtime Sur Windows, pensez localtime_s() à la place (voir stackoverflow.com/questions/14386923/...).
Que faire si l'Époque que vous souhaitez convertir n'est pas à l'heure actuelle, mais tout autre moment donné (exemple: 1464545562043 )?
OriginalL'auteur Olaf Dietsche
Je vais supposer que vous avez le temps dans un
time_t
. Vous devez d'abord convertir unstruct tm
. Vous pouvez faire cela aveclocaltime
ougmtime
, selon si vous souhaitez utiliser le fuseau horaire local ou GMT.Ensuite, vous pouvez mettre en forme que
struct tm
comme une chaîne de caractères avecstrftime
. Par exemple, pour obtenir une date comme2012-11-24
que vous souhaitez utiliser le format"%Y-%m-%d"
.OriginalL'auteur melpomene
Voir aussi Convertir Unix/Linux temps de Windows FILETIME
Cette fonction doit convertir UnixTime dans Windows SYSTEMTIME
OriginalL'auteur Michael Haephrati