2015-09-09 10 views
0

Мне нужно получить текущее системное время в формате UTC Unix и преобразовать его в CString. Я пытаюсь сделать это как этотПреобразование времени UTC в формат CString

CTime time = CTime::GetCurrentTime(); 
CString string = time.FormatGmt(L"%d"); 

код работает, но переменная «строка» содержит неверное значение, оно должно содержать что-то вроде «1011173512», то есть время в секундах с 1970 года Кто-нибудь имеет любой ключ Зачем???

+0

Когда вы говорите, "не работает", что вы имеете в виду под этим? Вы получаете ошибки сборки? Какие ошибки вы получаете? Вы получаете ошибку времени выполнения (сбой)? Где это, и каковы значения вовлеченных переменных? Получаете ли вы неожиданные результаты? Затем для некоторого конкретного ввода, каков ваш фактический и ожидаемый результат? –

+0

Говоря «не работает», я имею в виду, что переменная «string» содержит неправильное значение (она должна содержать что-то вроде «1011173512») – Slav

ответ

0

CTime::FormatGmt использует те же правила форматирования, что и strftime.

В частности, %d означает "День месяца как десятичное число (01 - 31)".

Я подозреваю, что вы хотите time_t или аналогичный объект. Я предлагаю вам использовать метод GetTime, который возвращает _time64_t.

Итак:

CTime time = CTime::GetCurrentTime(); 
CString string; string.Format(L"%lld", time.GetTime()); 
+0

@laroslav, под редакцией – Ben

+0

Спасибо, Бен, это действительно работает !!! – Slav

+0

@IaroslavVivat Если вы считаете, что это отвечает на ваш вопрос приемлемым образом, вы должны пометить его как таковой, щелкнув галочку рядом с ответом (например, [Что делать, если кто-то отвечает на мой вопрос?] (Http: // stackoverflow .com/help/someone-answers) и [Что это значит, когда ответ «принят»?] (http://stackoverflow.com/help/accepted-answer) в [Справочном центре] (http: // stackoverflow.com/help)). –

Смежные вопросы