今天一个朋友问我怎么把一串数字的时间(其实就是unixtime啦)转换成我们看得懂的时间,我习惯性的扔一句过去:这是unix timestr嘛,转一下就出来了嘛。可是面对一个unix盲,上述语言完全白搭。刚开始,随便google一下,找到一个网站提供转换服务,但是国外网站——转出来是格林威治时间。算了,好人做到底吧,帮人家写一个,反正也很简单~
先用c写了一个
#include
#include
#include
void main(int argc, char *argv[])
{
struct tm time;
char *str = argv[1];
const long tmstr = atol(str);
time = *localtime(&tmstr);
printf("%d-%02d-%02d %02d:%02d:%02d\n",time.tm_year+1900,time.tm_mon+1,time.tm_mday,time.tm_hour,time.tm_min,time.tm_sec);
}
简单可以用了。(编译出来130多k,还是不小啊!)
突然想到perl也可以在windows下用,又用perl写了一个
while(1) {
print "Please input a unixtime string: ";
my $read=<> ;
print localtimeStr($read) , "\n\n";
}
sub localtimeStr
{
#usage: localtimeStr(time);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($_[0]);
my $dateStr = ($year + 1900) . "-"
. (($mon + 1) < 10 ? "0" . ($mon + 1) : ($mon + 1)) . "-"
. ($mday < 10 ? "0" . $mday : $mday) . " "
. ($hour < 10 ? "0" . $hour : $hour) . ":"
. ($min < 10 ? "0" . $min : $min) . ":"
. ($sec < 10 ? "0" . $sec : $sec);
return ($dateStr);
}
朋友那肯定没有安装activeperl,于是想到编译。用perlcc编译,总是不成功(在linux下可以通过,不过编译出来个头快到1M了);于是想到activestate公司的perlapp,它可以在windows下编译perl程序。下了一个pdk6.0.1,安装好一编译就成功了,输出文件500多k,用起来还不错,呵呵,就把perl版的发给朋友了。
在windows下编译成功,一下子激起兴趣,正好网上有一个人用perl配合tcl/tk在windows下作了一个代理服务器验证的工具。于是我准备看一下tcl模块的dd,试试在windows下做一些图形的小软件,倒也不错,呵呵。