현재 시간을 2011-08-18 10:11:12 -07:00
으로 인쇄하고 싶습니다. 나는 숫자 형식으로 지정된 시간대를 가져 오는 중
#include <iostream>
using namespace std;
void time_to_string(time_t clock,const char *fmtstr)
{
char buf[256];
if (strftime(buf, 256, fmtstr, localtime(&clock)) == 0)
buf[0] = 0;
cout << buf << endl;
}
int main()
{
time_to_string(time(NULL), "%Y-%m-%d %H%M%S %z");
}
나는
2011-08-18 10:11:12 -0700
로 시간을 표시 할 수 있지만
2011-08-18 10:11:12 -07:00
으로 오전, 아래와 같은 코드를 개발했다.
"%Y-%m-%d %H%M%S %:z"
을 사용하면
2011-08-18 10:11:12 %:z
가 생성됩니다.
C/C++에서 위의 작업을 어떻게 수행 할 수 있습니까?
버퍼의 데이터 길이에 대해 어떠한 가정도해서는 안됩니다. 먼저 버퍼를 0으로 설정 한 다음 데이터의 끝 부분을 결정해야합니다. – Nathanael
그러나 당신은 buf에있는 데이터의 형식을 알고 있습니다 ... –
'% z'는 변하지 않을 것이지만 문제는 그것이 오전 7시에 '% z'가 하나씩 이동한다는 것입니다. 코드가 실패합니다. –