Holen Sie sich die aktuelle Uhrzeit in C [duplicate]

Lesezeit: 3 Minuten

Benutzeravatar von Antrromet
Antromet

Ich möchte die aktuelle Uhrzeit meines Systems abrufen. Dafür verwende ich folgenden Code in C:

time_t now;
struct tm *mytime = localtime(&now); 
if ( strftime(buffer, sizeof buffer, "%X", mytime) )
{
    printf("time1 = \"%s\"\n", buffer);
}

Das Problem ist, dass dieser Code eine zufällige Zeit angibt. Außerdem ist die zufällige Zeit jedes Mal anders. Ich möchte die aktuelle Zeit meines Systems.

Benutzeravatar von mingos
Mingos

Copy-Paste von hier:

/* localtime example */
#include <stdio.h>
#include <time.h>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current local time and date: %s", asctime (timeinfo) );
  
  return 0;
}

(einfach hinzufügen void zum main() Argumentliste, damit dies in C funktioniert)

  • eine idee wie man es andersherum macht? Zeichenfolge zu tm* ?

    – Goaler444

    23. März 2013 um 13:46 Uhr

  • Ich weiß, es ist wahrscheinlich ein bisschen spät und Sie haben es wahrscheinlich schon herausgefunden, aber Sie würden das verwenden strptime Funktion ein Zeit.h umzuwandeln char * zu struct tm

    – KingRadical

    5. November 2013 um 19:59 Uhr


  • Beachten Sie, dass asctime() am Ende der Zeichenfolge ein \n hinterlässt.

    – h7r

    23. März 2014 um 22:15 Uhr


  • Der obige Code ist redundant. asctime(localtime(&rawtime)) entspricht einem einzelnen ctime(&rawtime)-Funktionsaufruf.

    – Duleshi

    21. Mai 2014 um 8:45 Uhr

  • FYI – Tust du nicht brauchen a time_t Objekt als Argument für time(). Putten NULL, 0usw., da der Parameter die aktuelle Zeit zurückgibt.

    – Superkat

    21. Dezember 2015 um 0:30 Uhr


Initialisieren Sie Ihre now Variable.

time_t now = time(0); // Get the system time

Das localtime Funktion wird verwendet, um den Zeitwert in die übergebene umzuwandeln time_t zu einem struct tmes ruft nicht wirklich die Systemzeit ab.

Benutzeravatar von zishan
Zishan

Einfacher Weg:

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

int main(void)
{
    time_t mytime = time(NULL);
    char * time_str = ctime(&mytime);
    time_str[strlen(time_str)-1] = '\0';
    printf("Current Time : %s\n", time_str);

    return 0;
}

Benutzeravatar von hexinpeter
Hexinpeter

Um die Antwort von @mingos oben zu erweitern, habe ich die folgende Funktion geschrieben, um meine Zeit in einem bestimmten Format zu formatieren ([dd mm yyyy hh:mm:ss]).

// Store the formatted string of time in the output
void format_time(char *output){
    time_t rawtime;
    struct tm * timeinfo;
    
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    
    sprintf(output, "[%d %d %d %d:%d:%d]", timeinfo->tm_mday,
            timeinfo->tm_mon + 1, timeinfo->tm_year + 1900,
            timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
}

Weitere Informationen zu struct tm kann gefunden werden hier.

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

void main()
{
    time_t t;
    time(&t);
    printf("\n current time is : %s",ctime(&t));
}

Benutzeravatar von Neuron
Neuron

Mit dieser Funktion können Sie die aktuelle Ortszeit abrufen. wenn du gmt willst dann benutze die gmtime Funktion statt localtime. Prost

time_t my_time;
struct tm * timeinfo; 
time (&my_time);
timeinfo = localtime (&my_time);
CCLog("year->%d",timeinfo->tm_year+1900);
CCLog("month->%d",timeinfo->tm_mon+1);
CCLog("date->%d",timeinfo->tm_mday);
CCLog("hour->%d",timeinfo->tm_hour);
CCLog("minutes->%d",timeinfo->tm_min);
CCLog("seconds->%d",timeinfo->tm_sec);

kames Benutzeravatar
kam

Wenn Sie nur die Uhrzeit ohne das Datum benötigen.

  time_t rawtime;
  struct tm * timeinfo;
  time( &rawtime );
  timeinfo = localtime( &rawtime );
  printf("%02d:%02d:%02d", timeinfo->tm_hour, timeinfo->tm_min, 
    timeinfo->tm_sec);

1422900cookie-checkHolen Sie sich die aktuelle Uhrzeit in C [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy