shell,python,golang,日期时间与时间戳的转换

davidchang 2019-11-04

Shell

  • shell获取文件最后修改时间的秒时间戳:
stat -c %Y $path/$newest_log
  • shell获取当前时间的秒时间戳:
date +%s
  • 两个时间戳相减:
timegap=$[$timestamp - $filetimestamp]
  • 将日期时间字符串转化为时间戳:
date -d "2019-08-26" +%s
  • 将时间戳转化为日期时间字符串:
date -d @1566748800
  • 获取n天前的日期时间:
date -d "1 day ago" +"%Y-%m-%d"
  • 获取n分钟前的日期时间:

date -d "1 minute ago" +"%Y-%m-%d-%H-%M-%S"

获取n天后的日期时间:
date -d "1 day" +"%Y-%m-%d"

获取n分钟后的日期时间:
date -d "1 minute" +"%Y-%m-%d-%H-%M-%S"

python

import datetime
# 获取当前时间
d1 = datetime.datetime.now()
print d1
# 当前时间加上半小时
d2 = d1 + datetime.timedelta(hours=0.5)
print d2
# 格式化字符串输出
d3 = d2.strftime('%Y-%m-%d %H:%M:%S')
print d3
# 将字符串转化为时间类型
d4 = datetime.datetime.strptime(date,'%Y-%m-%d %H:%M:%S.%f')
print d4

today = datetime.datetime.now()
yesterday = today - datetime.timedelta(days=1)
yesterday_str = yesterday.strftime('%Y-%m-%d')

golang

package main  
   
import ( 
    "fmt" 
    "time"
) 
   
func main() { 
    ts := 十位时间戳
    intts, err := strconv.Atoi(ts)
          if err != nil {
              return err 
          }  //转为整形
    tm := time.Unix(int64(intts), 0)//转为int64
    t1 := tm.Format("2006-01-02 15:04:05") //转为日期字符串
    fmt.Println(t1) 
}
Format里必须用“2006-01-02 15:04:05"这个时间戳,分别代表年月日时分秒,简单来记的话就是 2006-1-2-3-4-5

相关推荐