当前位置: 首页 > news >正文

东莞seo整站优化火速ae模板免费下载网站

东莞seo整站优化火速,ae模板免费下载网站,唯美谷网站建设,wordpress 文章页不显示侧边栏time标准库 时间在日常编程中使用非常多。time标准库中日历的计算采用的是公历 1. Time类型 Time代表一个纳秒精度的时间点。 程序中应使用Time类型值来保存和传递时间#xff0c;而不能用指针。就是说#xff0c;表示时间的变量和字段#xff0c;应为time.Time类型#x…time标准库 时间在日常编程中使用非常多。time标准库中日历的计算采用的是公历 1. Time类型 Time代表一个纳秒精度的时间点。 程序中应使用Time类型值来保存和传递时间而不能用指针。就是说表示时间的变量和字段应为time.Time类型而不是*time.Time.类型。 一个Time类型值可以被多个goroutine同时使用。 时间点可以使用Before、After和Equal方法进行比较。 Sub方法让两个时间点相减生成一个Duration类型值代表时间段。 Add方法给一个时间点加上一个时间段生成一个新的Time类型时间点。 Time零值代表时间点January 1, year 1, 00:00:00.000000000 UTC。因为本时间点一般不会出现在使用中IsZero方法提供了检验时间是否显式初始化的一个简单途径。 每一个时间都具有一个地点信息及对应地点的时区信息当计算时间的表示格式时如Format、Hour和Year等方法都会考虑该信息。 Local、UTC和In方法返回一个指定时区但指向同一时间点的Time。修改地点/时区信息只是会改变其表示不会修改被表示的时间点因此也不会影响其计算。 func timeDemo() {now : time.Now() //获取当前时间fmt.Printf(current time:%v\n, now)year : now.Year() //年month : now.Month() //月day : now.Day() //日hour : now.Hour() //小时minute : now.Minute() //分钟second : now.Second() //秒//02d输出的整数不足两位 用0补足fmt.Printf(%d-%02d-%02d %02d:%02d:%02d\n, year, month, day, hour, minute, second) } 2. 时间戳 时间戳是自1970年1月1日0时0分0秒至当前时间的总毫秒数。它也被称为Unix时间戳UnixTimestamp。 这里指的是UTC时间比北京时间晚8个小时。 func timestampDemo() {now : time.Now() //获取当前时间timestamp1 : now.Unix() //时间戳timestamp2 : now.UnixNano() //纳秒时间戳fmt.Printf(current timestamp1:%v\n, timestamp1)fmt.Printf(current timestamp2:%v\n, timestamp2) }3. Parse解析时间 func Parse(layout, value string) (Time, error)解析一个格式化的时间字符串并返回它代表的时间如果缺少表示时区的信息Parse会将时区设置为UTC。 func ParseInLocation(layout, value string, loc *Location) (Time, error)ParseInLocation类似Parse但有两个重要的不同之处。第一当缺少时区信息时Parse将时间解释为UTC时间而ParseInLocation将返回值的Location设置为loc第二当时间字符串提供了时区偏移量信息时Parse会尝试去匹配本地时区而ParseInLocation会去匹配loc。 layout的时间必须是2006-01-02 15:04:05这个时间当然格式不一定是这个时间一定得是这是go诞生的时间 func timeParse() {t, err : time.Parse(2006-01-02 15:04:05, 2022-07-28 18:06:00)if err ! nil {panic(err)}fmt.Println(t)now : time.Now()fmt.Println(now)// 加载时区loc, err : time.LoadLocation(Asia/Shanghai)if err ! nil {fmt.Println(err)return}// 按照指定时区和指定格式解析字符串时间timeObj, err : time.ParseInLocation(2006/01/02 15:04:05, now.Format(2006/01/02 15:04:05), loc)if err ! nil {fmt.Println(err)return}fmt.Println(timeObj)}4. 格式化时间 func (t Time) Format(layout string) stringFormat根据layout指定的格式返回t代表的时间点的格式化文本表示。 func timeFormat() {now : time.Now()// 格式化的模板为Go的出生时间2006年1月2号15点04分05秒// 24小时制fmt.Println(now.Format(2006-01-02 15:04:05.000))// 12小时制fmt.Println(now.Format(2006-01-02 03:04:05))fmt.Println(now.Format(2006/01/02 15:04))fmt.Println(now.Format(15:04 2006/01/02))fmt.Println(now.Format(2006/01/02)) }5. time.Unix() func Unix(sec int64, nsec int64) TimeUnix创建一个本地时间对应sec和nsec表示的Unix时间从January 1, 1970 UTC至该时间的秒数和纳秒数。 nsec的值在[0, 999999999]范围内是合法的。 func timestampDemo2(timestamp int64) {timeObj : time.Unix(timestamp, 0) //将时间戳转为时间格式fmt.Println(timeObj)year : timeObj.Year() //年month : timeObj.Month() //月day : timeObj.Day() //日hour : timeObj.Hour() //小时minute : timeObj.Minute() //分钟second : timeObj.Second() //秒fmt.Printf(%d-%02d-%02d %02d:%02d:%02d\n, year, month, day, hour, minute, second) }6. 时间间隔 time.Duration是time包定义的一个类型它代表两个时间点之间经过的时间以纳秒为单位。time.Duration表示一段时间间隔可表示的最长时间段大约290年。 time包中定义的时间间隔类型的常量如下 const (Nanosecond Duration 1Microsecond 1000 * NanosecondMillisecond 1000 * MicrosecondSecond 1000 * MillisecondMinute 60 * SecondHour 60 * Minute )例如time.Duration表示1纳秒time.Second表示1秒。 7. 时间计算 7.1 Add func (t Time) Add(d Duration) TimeAdd返回时间点td。 func main() {now : time.Now()later : now.Add(time.Hour) // 当前时间加1小时后的时间fmt.Println(later) }7.2 Sub 求两个时间之间的差值 func (t Time) Sub(u Time) Duration返回一个时间段t-u。如果结果超出了Duration可以表示的最大值/最小值将返回最大值/最小值。 要获取时间点t-dd为Duration可以使用t.Add(-d)。 func main() {now : time.Now()later : now.Add(time.Hour) // 当前时间加1小时后的时间ret : later.Sub(now)fmt.Println(ret) }7.3 Equal func (t Time) Equal(u Time) bool判断两个时间是否相同会考虑时区的影响因此不同时区标准的时间也可以正确比较。 本方法和用tu不同这种方法还会比较地点和时区信息。 7.4 Before func (t Time) Before(u Time) bool如果t代表的时间点在u之前返回真否则返回假。 7.5 After func (t Time) After(u Time) bool如果t代表的时间点在u之后返回真否则返回假。 8. 定时器 使用time.Tick(时间间隔)来设置定时器定时器的本质上是一个通道channel func tickDemo() {ticker : time.Tick(time.Second) //定义一个1秒间隔的定时器for i : range ticker {fmt.Println(i)//每秒都会执行的任务} }time.AfterFunc(time.Second*10, func() {fmt.Println(10秒后执行) }) package mainimport (fmtsynctime )/** *ticker只要定义完成从此刻开始计时不需要任何其他的操作每隔固定时间都会触发。 *timer定时器是到固定时间后会执行一次 *如果timer定时器要每隔间隔的时间执行实现ticker的效果使用 func (t *Timer) Reset(d Duration) bool*/ func main() {var wg sync.WaitGroupwg.Add(2)//NewTimer 创建一个 Timer它会在最少过去时间段 d 后到期向其自身的 C 字段发送当时的时间timer1 : time.NewTimer(2 * time.Second)//NewTicker 返回一个新的 Ticker该 Ticker 包含一个通道字段并会每隔时间段 d 就向该通道发送当时的时间。它会调 //整时间间隔或者丢弃 tick 信息以适应反应慢的接收者。如果d 0会触发panic。关闭该 Ticker 可 //以释放相关资源。ticker1 : time.NewTicker(2 * time.Second)go func(t *time.Ticker) {defer wg.Done()for {-t.Cfmt.Println(get ticker1, time.Now().Format(2006-01-02 15:04:05))}}(ticker1)go func(t *time.Timer) {defer wg.Done()for {-t.Cfmt.Println(get timer, time.Now().Format(2006-01-02 15:04:05))//Reset 使 t 重新开始计时本方法返回后再等待时间段 d 过去后到期。如果调用时t //还在等待中会返回真如果 t已经到期或者被停止了会返回假。t.Reset(2 * time.Second)}}(timer1)wg.Wait() }
http://www.pierceye.com/news/709692/

相关文章:

  • 在家做的手工活哪里有网站网站开发与运营方向和企业管理方向
  • 厦门网站建设厦门南京宣传片公司有哪些
  • 专门做问卷的网站南宁做网站公司
  • 鹰潭做网站公司网站模板及素材
  • dw网站引导页怎么做wordpress 福利
  • PS网站设计网站每年都要备案吗
  • 建设通网站账号erp实施顾问
  • 变装小说 wordpress网站建设好怎么优化
  • 苏州网站建设制作开发公司江浦做网站
  • 网站开发哪一门语言更快网站设计方案模板
  • 阿里云做网站需要些什么条件个人博客网站设计模板
  • 更改网站模板内容我赢职场wordpress
  • h5模板下载有哪些网站南京高端网站制作公司
  • 户外旅游网站模板佛山网络优化推广公司
  • 海南住房和城乡建设网站技术支持 重庆网站
  • 网站图片展示代码怎样给响应式网站提速
  • 学校 网站建设 招标广而告之微信推广平台
  • 企业如何通过地方网站宣传网站中国建设银行招聘官网
  • 上海品牌网站建设公网站的开发与建设项目
  • 做网站的艰辛电子商务网站建设与维护概述
  • 织梦网站做关键词网站开发到上线的过程
  • 威海千淼网站建设北京知名广告公司有哪些
  • wordpress多站点可视化wordpress主题flarum
  • 网站免费虚拟主机申请成华区微信网站建设公
  • 机械制造设备类企业网站织梦模板网站模板 博客
  • js跳转网站怎么做网络营销方式单一的原因
  • 做网站的职责做章的网站
  • 万网建设网站wordpress的ftp設置
  • 网站建设a云世家宋南南电子商务网站的开发方式
  • 水利工程建设监理网站美食网站建设总结