struct tm tmpTm;
strptime("20010101010101","%Y%m%d%H%M%S",&tmpTm)在solaris下可以把字符串转换为正确 的时间,但是在hp unix下面这么写就不行了,在hp unix下时间中加入分隔符就可以用,如:strptime("2001-01-01 01:01:01","%Y-%m-%d %H:%M:%S",&tmpTm)。请问,在hp unix下能否直接strptime("20010101010101","%Y%m%d%H%M%S",&tmpTm)这么处理,是不是我这么 用的有什么问题?谢谢 问题点数:20、回复次数:4 Top
strptime跟sscanf差不多,没有明确定界的话,就得看实现了。所以用strptime("2001-01-01 01:01:01","%Y-%m-%d %H:%M:%S",&tmpTm)方式可移植性好。Top
struct tm t;
setlocale(LC_TIME, "en_US.iso88591"); //*********注意,必须注意环境变量
strptime("1:04:23 PM on 10/6/92", "%I:%M:%S %p on %D", &t);
The converted value is stored in the structure t as follows:
t.tm_sec = 23
t.tm_min = 4
t.tm_hour = 13
t.tm_mday = 6
t.tm_mon = 9
t.tm_year = 92
t.tm_wday = 2
t.tm_yday = 279
t.tm_isdst = 1
呵呵~~~接分
Top
谢谢fierygnu,确实可移植性不好,现在不用strptime了,因为待处理的日期中有很多这种形式的,现在定长读到年、月...字符串中了。应该不是环境变量的问题,谢谢ouygg。Top
如果都是这种形式,就自己sscanf,更方便。