遇到一個問題,把形如20150728102148
的字符串轉換爲時間戳。在shell和awk中沒有找到解決方案,可是卻找到了一個c語言的辦法,程序以下:python
#include <time.h> #include <stdio.h> #include <string.h> int main(int argc, char **argv ) { struct tm tm; char buf[255]; char src[255]; strptime(argv[1], "%Y%m%d%H%M%S" , &tm); memset(buf,0,sizeof(buf)); strftime(buf, sizeof(buf), "%s", &tm); puts(buf); return 0; }
利用strptime和strftime函數就能夠實現轉換,strftime是把時間結構體轉換爲字符串,strptime相反,把字符串轉換爲時間結構體。shell
編譯後執行以下命令:函數
./convert_date_string_to_epoch 20150728102148
convert_date_string_to_epoch 是編譯後的可執行文件名。.net
python實現這個功能也比較簡單:code
python >>> str="20150728102148" >>> format="%Y%m%d%H%M%S" >>> time.mktime(time.strptime(str, format) ) 1438050108.0
不知道是否還有更好的方法。orm