Study/STM32F

timestamp 변환하기

Answer Choi 2015. 2. 12. 10:42
반응형



Timestamp란?


 timestamp는 1970년 1월 1일 0:00:00 을 기준으로 1초단위로 숫자를 센 것입니다.


년, 월, 일등의 데이터를 한번에 보내기 힘들기 때문에 timestamp로 한번에 보내는 것 같은데요.


하지만 이 것을 우리가 일일이 세기가 힘듦니다.


그래서 C에서는 time.h라는 라이브러리를 제공합니다.


이 라이브러리에서 현재시간을 가져올 수도 있구요.


특정시간을 timestamp로 변환도 해줍니다.


여기서 해볼 것은 특정시간을 timestamp로 만드는 방법을 알아 보겠습니다.


특정시각 2015년 1월 19일 11시 50분 30초를 가지고 timestamp로 만들어 보겠습니다.


Timestamp 만들기!!


1
2
3
4
5
6
7
8
9
10
11
12
#include <time.h>
 
time_t now;
struct tm ct;
ct.tm_year=115;//(-1900)
ct.tm_mon=0;    //(-1)
ct.tm_mday=19;
ct.tm_hour=11;
ct.tm_min=50;
ct.tm_sec=30;
now=mktime(&ct);
Uart3_printf_p("%d\n",now);
cs


먼저 time.h 를 include해야 합니다.


time_t가 timestamp라고 생각하시면 되고요.


struct tm 은 시간정보를 넣을 구조체입니다.


년도는 현재년도에서 1900을 빼주면 되고, 월은 0부터 시작이라 -1을 해주세요.


나머지는 그대로 넣으시면 됩니다.


그리고 time.h에 가보시면 여러 함수들이 있는데요.


mktime이 timestamp로 만들어 주는 함수 입니다.


여기서는 초까지만 넣어서 timestamp로 만들었습니다.




RTC를 이용해서 위 구조체에 숫자대신 가져온 값을 넣어주시면, 자동으로 현재시간을 timestamp로 만드실 수 있습니다.


현재 시스템에서 현재시간을 timestamp로 가져오기!!


1
2
3
4
5
#include <time.h>
 
time_t now;
now=time(NULL);
Uart3_printf_p("%x",now);
cs


시스템의 현재시간을 타임스탬프로 가져오는 건 time 함수를 쓰시면 됩니다.


time(NULL)을 하시면 바로 타임스탬프 값을 가져오게 됩니다.

반응형