Chinaunix
标题:
请各位帮忙看个date修改时间的问题,3Q!
[打印本页]
作者:
youcaihuazi
时间:
2014-10-29 18:06
标题:
请各位帮忙看个date修改时间的问题,3Q!
文件中的时间是UTC时间,需要在这个时间上加上8小时变成北京时间,请问怎么用date直接修改?
时间格式如下:
20141022093000
作者:
jason680
时间:
2014-10-29 20:32
回复
1#
youcaihuazi
$ echo 20141022093000 | sed -r 's/(....)(..)(..)(..)(..)(..)/\1-\2-\3 \4:\5:\6/'| xargs -i date -d "{}
GMT
" "+%Y%m%d%H%M%S"
20141022
17
3000
Note: maybe you need modify GMT to -8
作者:
youcaihuazi
时间:
2014-10-30 09:45
非常感谢高手指点,因为系统时间现在不能修改,原始代码也是直接将系统UTC事件写入文件,所以需要将文件里最后一个字段时间转换为GMT。还请再帮忙看看怎么转换?
原始文件格式如下:
ID03440321|0|10000|20141023020934
转换格式如下:
ID03440321|0|10000|20141107020934
作者:
jason680
时间:
2014-10-30 10:27
本帖最后由 jason680 于 2014-10-30 10:34 编辑
回复
3#
youcaihuazi
1. debug by yourself
2. you can change
+0
to +8,-8,... for the right answer what you want
Note: all reply DIDNOT modify your system time
$ cat FILE
ID03440321|0|10000|20141023020934
$ awk 'BEGIN{FS=OFS="|"}{d=gensub(/(....)(..)(..)(..)(..)(..)/,"\\1-\\2-\\3 \\4:\\5:\\6","",$4);cmd="date -d \""d"
+0
\" \"+%Y%m%d%H%M%S\"";cmd | getline D;
print "debug: "d"=>"D
;$4=D;print}' FILE
debug: 2014-10-23 02:09:34=>20141023100934
ID03440321|0|10000|20141023100934
作者:
youcaihuazi
时间:
2014-10-30 11:10
感谢高手指点,3q!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2