为什么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. mysql源 如何编译安装,MySQL5.7.22-源代码编译安装
  2. 很多程序员聪明,但我一看就知道他不会成功: 周鸿祎
  3. 准爸爸日记——20120311
  4. setfacl设置特定目录的权限
  5. android 简单的音乐播放器
  6. html5 canvas 图像预览,html5-canvas 加载并显示图像
  7. Android网络编程http派/申请服务
  8. 刷题到底有什么用?你这么刷题还真没用
  9. ECMAScript 发展历史
  10. 感谢你遇到的问题(2)
  11. 4k电视测试软件64,2017年四款看4k视频软件推荐,智能电视必备!
  12. sqlite3数据存储最多存储多少条数据?达到上限如何处理?_把 14 亿人拉到一个微信群,如何实现?...
  13. qq音乐mp3解析php源码,QQ音乐PHP解析源码
  14. 经典语录(个人喜欢)
  15. python实现添加商品至购物车
  16. 盘点人工智能重点技术领域
  17. 树形结构的处理——组合模式(三)
  18. 高精度定位系统在汽车4S店的应用
  19. Android SDK HTTP Proxy Server
  20. Android WebView 资源探查

热门文章

  1. 瑞吉外卖笔记-后台管理系统
  2. 计算机思维入门观后感怎么写,读《逻辑思维简易入门》后感
  3. 转载:C# IO读取文件问题:正由另一进程使用
  4. 内核系统调用openat Hook(Android10)
  5. 开源流程引擎camunda需要扩展哪些功能
  6. 部署.net core webAPI 访问wwwroot静态图片 500错误
  7. HTML中对一行英文字母的装饰,英文字母装饰家,展示出满满的学霸风
  8. JS实现动态瀑布流及放大切换图片效果(js案例)
  9. html中纵向分块的代码,html标签 —— 块级元素
  10. 初学者 linux版本,最适合于初学者的 Linux 发行版 | Linux 中国