Расширить ответ на Ори Ошеров
Вы можете использовать WinAPI для получения даты и времени, этот метод специфичен для Windows, но если вы ориентируетесь только на Windows или уже используете WinAPI, то это определенно возможно 1
Вы можете получить время и дату, используя SYSTEMTIME
struct
. Вам также необходимо вызвать одну из двух функций (GetLocalTime()
или GetSystemTime()
), чтобы заполнить struct .
GetLocalTime()
даст вам время и дату , специфичные для вашего часового пояса .
GetSystemTime()
даст вам время и дату в UTC .
В SYSTEMTIME
struct
входят следующие члены:
wYear
, wMonth
, wDayOfWeek
, wDay
, wHour
, wMinute
, wSecond
и wMilliseconds
Затем вам нужно просто получить доступ к struct обычным способом
Фактический пример кода:
#include <windows.h> // use to define SYSTEMTIME , GetLocalTime() and GetSystemTime()
#include <stdio.h> // For printf() (could otherwise use WinAPI equivalent)
int main(void) { // Or any other WinAPI entry point (e.g. WinMain/wmain)
SYSTEMTIME t; // Declare SYSTEMTIME struct
GetLocalTime(&t); // Fill out the struct so that it can be used
// Use GetSystemTime(&t) to get UTC time
printf("Year: %d, Month: %d, Day: %d, Hour: %d, Minute:%d, Second: %d, Millisecond: %d", t.wYear, t.wMonth, t.wDay, t.wHour, t.wMinute, t.wSecond, t.wMilliseconds); // Return year, month, day, hour, minute, second and millisecond in that order
return 0;
}
(Код для простоты и ясности см. Оригинальный ответ для лучшего формата )
Вывод будет примерно таким:
Year: 2018, Month: 11, Day: 24, Hour: 12, Minute:28, Second: 1, Millisecond: 572
Полезные ссылки:
Вся документация WinAPI (большинство уже перечислено выше):
Очень хороший учебник для начинающих на эту тему от Zetcode:
Простые операции с датой и временем на Codeproject:
1: Как упоминалось в комментариях в ответе Ори Ошерова ("Given that OP started with date +%F, they're almost certainly not using Windows. – melpomene Sep 9 at 22:17
"), ОП является , а не с использованием Windows, однако, поскольку этот вопрос не имеет специфического для платформы тега (и при этом нигде не упоминается, что ответ должен быть для этой конкретной системы), и это один из лучших результатов, когда Googling «получает время в c» оба ответа принадлежат здесь, некоторые пользователи, ищущие ответ на этот вопрос, могут быть в Windows и, следовательно, будут полезны для них .