接口中的时间应该采用什么格式
看到一片篇文章:
Designing a REST API: Unix time vs ISO-8601
讨论在接口中,应该使用unix时间戳还是ISO-8601这样可读形式。文章建议,采用ISO-8601,理由是,可读性更重要。
自己在日常业务中的API中都采用的unix时间戳,暂时不想改变。深入思考,又觉得应该保留unix时间戳,理由是, unix时间戳能减少沟通成本,API的开发和使用往往是不同的人,沟通是一个显著的成本。unix时间戳只有一种形式,而可读的时间串很多形式,日常使用中往往不采用ISO-8601的形式。
但在调试的时候,unix时间戳确实让人头疼,为了缓解这个问题,遂写了一个shell函数punixtime
,快速翻译unix时间戳。函数实现如下:
function punixtime() {
while [ $# -ge 1 ]
do
ts=$1; shift
if [[ $ts -ge 1000000000000 ]]
then
ts=${ts:0:10}
fi
date -r $ts +"%Y-%m-%d %H:%M:%S"
done
}
其实,大多数时候,date -r <seconds>
也能满足需求。需要注意的是date
的参数是秒,大多数unix时间戳是毫秒。