为什么80%的码农都做不了架构师?>>>   

time

  1. 当前时间 time.Now()
  2. 把时间格式化成字符串(time->string) : time.Now().Format("2006-01-02 15:04:05")
  3. 把日期字符串转化为时间(string -> time) : time.Parse("01-02-2006", "06-17-2013")
  4. 把纳秒转化为时间字符串(int64 -> string): time.Unix(timestamp, 0).Format("2006-01-02 15:04:05")
  5. 获取当前时间纳秒时间戳 time.Now().UnixNano()
  6. 自己组装时间 time.Date() (看下面)
  7. 时间间隔多久time.Now().Truncate(时间)

string to time

layout := "2006-01-02 15:04:05"
str := "2016-07-25 11:45:26"
t, err := time.Parse(layout, str)
if err != nil {fmt.Println(err)
}
fmt.Println(t)

unix 时间格式化, 将int转化为时间

//普通unix时间转换
func(timestamp int64) string {tm := time.Unix(timestamp, 0)return tm.Format("2006-01-02 15:04:05")
}// nano 纳秒转换
func(timestamp float64, nsec int64) string {//纳秒没什么用 前段不显示 直接将小数舍弃转化为int64tm := time.Unix(int64(timestamp), nsec)return tm.Format("2006-01-02 15:04:05")
},

组装时间

timeEnd := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 23, 59, 59, 0, time.Local)

时间 加,减,比较

type Duration int64 表示一个持续的时间,单位是纳秒

  1. Add() 加
  2. Sub() 减
  3. Before() 比时间前的一段时间
  4. After() 比时间后的一段时间
package mainimport ("fmt""time"
)func main() {t := time.Now()t2 := t.Add(24 * time.Hour) //当前时间加24小时,即明天的这个时间d := t2.Sub(t)fmt.Println(t)fmt.Println(t2)fmt.Println(d)if t.Before(t2) {//t 小 t2fmt.Println("t<t2")}if t2.After(t) {//t2大于 t fmt.Println("t2>t")//t2-t1,相差24小时}if t.Equal(t) {//判断两个时间是否相等等fmt.Println("t=t")}
}

定时器

Go 里的定时器相关的函数有 time.After,time.AfterFunc,time.Tick 等

1.func After(d Duration) <-chan Time 等待一个时间段 d,然后把当前时间发送到 channel 中。与 NewTimer 等价

package mainimport ("fmt""time"
)func main() {fmt.Println(time.Now())c := time.After(10 * time.Second) //返回 channel 类型,10秒后向 channel 发送当前时间t := <-cfmt.Println(t)tm := time.NewTimer(10 * time.Second) //NewTimer 返回 Timer 类型t = <-tm.C /*Timer 结构中有一个 channel C,10秒后,把当前时间发送到 C*/fmt.Println(t)
}

2.func AfterFunc(d Duration, f func()) *Timer,等待时间 d,然后调用函数 f。注意这里的 函数 f 是不带任何参数和返回值的

package mainimport ("fmt""time"
)func Test() {fmt.Println("Hello world!", time.Now())
}
func main() {fmt.Println(time.Now())time.AfterFunc(10 * time.Second, Test)var str stringfmt.Scan(&str) /*这里主要是等待用户输入,不让进程结束,进程结束定时器也就无效了。*/
}

3.Tick 与 After 有点类似,唯的区别是 After 等待时间到期后,定时器就结束了。Tick 是 每隔一段时间 d 都会向 channel 发送当前时间。

package mainimport ("fmt""time"
)func main() {c := time.Tick(10 * time.Second)for t := range c {fmt.Println(t)}
}

转载于:https://my.oschina.net/solate/blog/711934

go time Format 格式化时间的使用相关推荐

  1. C语言strftime()函数 (格式化时间)(注意第二个参数size_t maxsize一定要大于第三个参数const char *format指向字符串的长度)

    需包含:C 标准库 - <time.h> 文章目录 描述 声明 参数 返回值 实例 使用☞坑(注意第二个参数size_t maxsize一定要大于第三个参数const char *form ...

  2. java.time.format例子_java格式化时间示例

    实现日期的格式化,需要用到类: java.text.DateFormat DateFormat没有可以直接使用的构造函数,一般使用DateFormate的子类---java.text.SimpleDa ...

  3. 格式化时间格式-IOS date format

    各种时间字符说明 (:) 时间分隔符.在某些区域设置中,可以使用其他字符表示时间分隔符.时间分隔符在格式化时间值时分隔小时.分钟和秒.格式化输出中用作时间分隔符的实际字符由您的应用程序的当前区域性值确 ...

  4. C语言如何返回格式化日期时间(格式化时间)?(将日期和时间以字符串格式输出)ctime()、asctime()、localtime()、strftime()

    文章目录 ctime()函数: asctime()函数 获取自定义格式化时间(有bug,当时间为个位数时,没有在前面自动补零) 改成函数接口形式(传入字符指针) 20220107 优化后(能自动补零) ...

  5. [js] 写一个格式化时间的方法

    [js] 写一个格式化时间的方法 function dateToString(date, format = 'yyyy-MM-dd') {const d = new Date(date);let re ...

  6. 日期格式化为yyyymmdd_你还在用SimpleDateFormat格式化时间嘛

    Jdk1.8之时间处理 该文章已经同步到Github:https://github.com/stackInk/makerstack 1. 传统时间处理的问题 1.1 多线程环境下的SimpleDate ...

  7. java 格式化时间计算

    package com.roshi.utils.common; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  8. Java 时间处理(格式解释、格式化时间、获取当前时间、获取年份、月份等、时间戳转换成时间)

    日期和时间模式(注意大小写,代表的含义是不同的): yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一年 ...

  9. Extjs格式化时间

    //#region 格式化时间 Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": t ...

最新文章

  1. java反射获得注释_Java反射、注解
  2. mysql 分布式 安装_mysql分布式集群安装-阿里云开发者社区
  3. HTML5 跨文档消息传输
  4. 外币评估时,错误勾选”资产负债表准备评估”的处理
  5. 4.21 LNMP环境介绍 4.22/23/24 Mariadb安装 4.25 服务管理
  6. 使用JQUERY实现局部页面定时刷新
  7. 0207.Domino R8.0.x群集配置手册
  8. python中用来占位_自定义占位符,如python中的None
  9. (Docker实战) 第三篇:配置_开发环境
  10. 十二. python面向对象主动调用其他类
  11. Perl_获得字符串长度_length($var)
  12. linux mysql8源码安装_linux 源码安装mysql8
  13. 计算机二级vfp考试怎么学,计算机二级VFP考试基础教程(7)
  14. 截图工具Snagit试用免费激活方法
  15. 认识和理解计算机语言,如何理解所有的编程语言和语言
  16. Borůvka算法学习小记
  17. c语言中专业英文词汇的意思,C语言常见英文词汇表
  18. 从《哪吒之魔童降世》票房火爆,看国产动画产业市场化三十年
  19. android 简单快速 倒计时动画
  20. 【数学】B066_LQ_拯救阿拉德大陆(普通容理 / 进阶(写法疑惑))

热门文章

  1. 【Linux】shell脚本实现多并发
  2. 程序员如何拓展自己的社交圈(超实用)
  3. 计算机硬件新技术 ppt,信息新技术——计算机硬件与软件.ppt
  4. Cit 入门操作笔记
  5. Redis高级数据类型 :bitmap、hyperloglog和GEO
  6. 【树莓派】快速上手Raspberry Pi 4B——组装硬件烧录系统
  7. 笔记本安装CentOS7过程
  8. centos7.3本地ISO镜像安装图形化界面及kvm
  9. Kotlin实现简单的学生信息管理系统
  10. linux yum fping,CentOS 7 安装 fping