time - 時刻(RTC)
time - 時刻(RTC)
Information
本ページは私家版のため、誤り等あればご指摘ください。
最新の情報は公式のドキュメントをご参照ください。
http://mbed.org/handbook/Time
内蔵のRTC (Real Time Clock) から時刻を得ます。
時刻は1970/1/1からの経過した秒(UNIX時)で管理されています。
RTCを内蔵していないCPUでは使えません。
時刻を得る
val = time(t);
t: (time_t *)
val: UNIX時(time_t)
時刻を設定する
set_time(t);
t: UNIX時(time_t)
時刻を生成する
val = mktime(t);
t: 時刻構造体のポインタ(struct tm)
val: UNIX時
時刻を変換する
val = localtime(t);
t: UNIX時 val: 時刻構造体(struct tm)
時刻を文字列に変換する
strftime(buffer, max, format, t);
例
現在時刻を表示する(struct
#include "mbed.h"
int main() {
    time_t seconds = time(NULL) + (60 * 60 * 9); // JST
    struct tm *t = localtime(&seconds);
    printf("%04d/%02d/%02d %02d:%02d:%02d",
      t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
}
現在時刻を表示する(strftime利用)
#include "mbed.h"
int main() {
    time_t seconds = time(NULL) + (60 * 60 * 9); // JST
    char buffer[32];
    strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
    printf("Time as a formatted string = %s", buffer);
}
時刻を設定する
#include "mbed.h"
int main() {
    // setup time structure for Wed, 28 Oct 2009 11:35:37
    struct tm t;
    t.tm_sec = 37;    // 0-59
    t.tm_min = 35;    // 0-59
    t.tm_hour = 11;   // 0-23
    t.tm_mday = 28;   // 1-31
    t.tm_mon = 9;     // 0-11
    t.tm_year = 109;  // year since 1900
    // convert to timestamp and set (1256729737)
    time_t seconds = mktime(&t);
    set_time(seconds);
}
Please log in to post comments.
