GNU/Linux >> Znalost Linux >  >> Linux

Jak získat čas UTC

Můžete použít gmtime:

struct tm * gmtime (const time_t * timer);
Convert time_t to tm as UTC time

Zde je příklad:

std::string now()
{
  std::time_t now= std::time(0);
  std::tm* now_tm= std::gmtime(&now);
  char buf[42];
  std::strftime(buf, 42, "%Y%m%d %X", now_tm);
  return buf;
}

Výstup:

20131220 19:33:51

odkaz ideone:http://ideone.com/pCKG9K


Špičkovou odpovědí v C++ je použití Boost Date_Time.

Ale to může být přehnané. Knihovna C má to, co potřebujete v strftime , manuálová stránka obsahuje příklad.

/* from man 3 strftime */

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) { 
    char outstr[200];
    time_t t;
    struct tm *tmp;
    const char* fmt = "%a, %d %b %y %T %z";

    t = time(NULL);
    tmp = gmtime(&t);
    if (tmp == NULL) {
        perror("gmtime error");
        exit(EXIT_FAILURE);
    }

    if (strftime(outstr, sizeof(outstr), fmt, tmp) == 0) { 
        fprintf(stderr, "strftime returned 0");
        exit(EXIT_FAILURE); 
    } 
    printf("%s\n", outstr);
    exit(EXIT_SUCCESS); 
}        

Přidal jsem úplný příklad na základě toho, co je na stránce manuálu:

$ gcc -o strftime strftime.c 
$ ./strftime
Mon, 16 Dec 13 19:54:28 +0000
$

Linux
  1. Jak získat datový typ proměnných v Zsh?

  2. Linux – jak získat čas nástěnných hodin běžícího procesu?

  3. Jak zajistit, aby Uuencode fungoval?

  1. Jak zjistit využití CPU

  2. Získejte sekundy od epochy v Linuxu

  3. Jak získat datum/čas vytvoření souboru v Bash/Debian?

  1. Jak získat čas spouštění a dobu provozu na Ubuntu

  2. Get Age Of Given File?

  3. Jak dostat ps do tiskové skupiny?