[問題] 請教傳入日期+ms產生epoch時間

作者: TwoDemon (飛天)   2017-12-28 12:33:45
*[36m開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
NA
問題(Question):
如何回傳epoch時間
傳入(YYYMMDD, ms) ms的格式由 0 ~235959999 回傳epoch時間
找到類似的範列如下:
這是抓系統時間:
* timestamp example */
#include <stdio.h> /* printf */
#include <time.h> /* time_t, time (for timestamp in second) */
#include <sys/timeb.h> /* ftime, timeb (for timestamp in millisecond) */
#include <sys/time.h> /* gettimeofday, timeval (for timestamp in microsecond) */
int main ()
{
/* Example of timestamp in millisecond. */
struct timeb timer_msec;
long long int timestamp_msec; /* timestamp in millisecond. */
if (!ftime(&timer_msec)) {
timestamp_msec = ((long long int) timer_msec.time) * 1000ll +
(long long int) timer_msec.millitm;
}
else {
timestamp_msec = -1;
}
printf("%lld milliseconds since epoch\n", timestamp_msec);
return 0;
}
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-12-28 13:10:00
(1)你知道你ms的定義嗎(2)你知道epoch time的精確度嗎(3)你這個「類似範例」到底是頭髮還是指甲類似(4)你YYY只有三位,他的基準是1900, 1975還是2000年(5)你YYYMMDD是字串還是int
作者: TwoDemon (飛天)   2017-12-28 14:08:00
YYYY 才對YYYYMMDD 我已經有了 int ex: 20171211
作者: LPH66 (-6.2598534e+18f)   2017-12-28 14:17:00
(6)你知道你想要的「epoch 時間」是什麼東西嗎
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-12-28 17:06:00
好了放你一馬他標準的作法是include <time.h>做一個struct tm比如tm0 把你時間各個項目塞到裏面然後呼叫mktime(tm0)得到那個結果怎麼拆怎麼塞就由你發揮了
作者: Killercat (殺人貓™)   2017-12-28 18:26:00
C++11以後 比較推chrono library, std::chrono這是毫秒等級跨平台的時間函式庫 別再用平台限定的了不然你覺得const char* a = "0";會是啥....推錯文....
作者: TwoDemon (飛天)   2016-01-04 12:11:00
謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com