时间和日期相关函数

在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行话费的时间等等。

1)时间和日期相关函数,需要导入time包

2)time.Time 类型,用于表示时间

3)获取到当前时间的方法:
now := time.Now() //now 的类型就是time.Time

func main() {
  //1.获取当前时间
  now := time.Now()
  fmt.Printf("now=%v now type=%T \n", now, now)
}

4)如何获取到其它的日期信息

func main() {
  now := time.Now()

  //2.通过now可以获取到年月日,时分秒
  fmt.Printf("年=%v\n", now.Year())
  fmt.Printf("月=%v\n", now.Month())
  fmt.Printf("月=%v\n", int(now.Month()))
  fmt.Printf("日=%v\n", now.Day())
  fmt.Printf("时=%v\n", now.Hour())
  fmt.Printf("分=%v\n", now.Minute())
  fmt.Printf("秒=%v\n", now.Second())
}

5)格式化日期时间
(1)格式化的第一种方式:就是使用 Printf 或者Sprintf

func main() {

  //格式化日期时间
  now := time.Now()
  fmt.Printf("当前年月日 %02d-%02d-%02d %02d:%02d:%02d \n", now.Year(),
  now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())

  fmt.Printf("当前年月日 %d-%d-%d %d:%d:%d \n", now.Year(),
  now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())

  dateStr := fmt.Sprintf("当前年月日 %02d-%02d-%02d %02d:%02d:%02d \n", now.Year(),
  now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
  fmt.Printf("dateStr=%v \n", dateStr )

}

(2)格式化的第二种方式:使用 time.Format() 方法完成。

package main
import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  fmt.Printf(now.Format("2006-01-02 15:04:05"))
  fmt.Println()
  fmt.Printf(now.Format("2006-01-02"))
  fmt.Println()
  fmt.Printf(now.Format("15:04:05"))
  fmt.Println()
  fmt.Printf(now.Format("2006")) //打印年
  fmt.Println()
  fmt.Printf(now.Format("01")) //打印月
  fmt.Println()
  fmt.Printf(now.Format("02")) //打印日
  fmt.Println()
  fmt.Printf(now.Format("15")) //打印小时
  fmt.Println()
  fmt.Printf(now.Format("04")) //打印分
  fmt.Println()
  fmt.Printf(now.Format("05")) //打印秒
  fmt.Println()
}

结果是:

对上面代码的说明:
"2006/01/02 15:04:05" 这个字符串的各个数字是固定的,必须这样写。
"2006/01/02 15:04:05" 这个字符串各个数字可以自由的组合,这样可以按程序需求来返回时间和日期

6)时间的常量

const (
  Nanosecond Duration = 1 //纳秒
  Microsecond = 1000 * Nanosecond //微秒
  Millisecond = 1000 * Microsecond //毫秒
  second = 1000 * Millisecond //秒
  Minute = 60 * Second //分钟
  Hour = 60 * Minute //小时
)

常量的作用:在程序中可用于获取指定时间单位的时间,比如想得到100毫秒 100 * time.Millisecond

7)休眠
func Sleep(d Duration)
案例:time.Sleep(100 * time.Millisecond) //休眠100毫秒

6和7一起组合的案例:

func main() {
  //需求,每隔1秒钟打印一个数字,打印到100时就退出
  //需求2:每隔0.1秒钟打印一个数字,打印到100时就退出
  i := 0
  for {
    i++
    fmt.Println(i)
    //休眠
    //time.Sleep(time.Second)
    time.Sleep(time.Millisecond * 100)
    if i == 100 {
      break
    }
  }

}

8)获取当前unix 时间戳 和 unixnano 时间戳。(作用是可以获取随机数字)

案例:

func main() {
  now := time.Now()
  fmt.Printf("unix时间戳=%v unixnano时间戳=%v \n", now.Unix(), now.UnixNano())
}

得到的结果是:

最佳实践案例:

编写一段代码来统计 函数test03 执行的时间

package main
import (
  "fmt"
  "time"
  "strconv"
)

func test03() {
  str := ""
  for i := 0; i < 100000; i++ {
    str += "hello" + strconv.Itoa(i) //i是int类型的,需要转换成string类型的。
  }
}

func main() {
  //在执行test03前,先获取到当前的unix时间戳,
  start := time.Now().Unix()
  start1 := time.Now().UnixNano()
  test03()
  end := time.Now().Unix()
  end1 := time.Now().UnixNano()
  fmt.Printf("执行test03()耗费时间为%v秒\n", end-start)
  fmt.Printf("执行test03()耗费时间为%v纳秒\n", end1-start1)
}

输出的结果是:

原文地址:https://www.cnblogs.com/green-frog-2019/p/11355260.html

时间: 2024-08-03 11:23:07

时间和日期相关函数的相关文章

38 时间和日期相关函数

1,编程中,经常会使用到日期相关的函数,比如,统计某段代码执行花费的时间等.头文件是<time.h> 1,获取当前时间 char *ctime( const time_t *timer) 返回一个表示当地时间的字符串,当地时间是给予参数 timer 2,编写一段代码来统计 函数 test 执行的时间 double difftime ( time_t time1 , time_t time2) 返回 time1 和 time2 之间相差的秒数( time1 - time2) 1 #include

golang时间与日期相关函数

原文地址:https://www.cnblogs.com/sunlong88/p/11109204.html

localtime(取得当地目前时间和日期)

/*localtime(取得当地目前时间和日期) 相关函数 time, asctime, ctime, gmtime 表头文件 #include<time.h> 定义函数 struct tm *localtime(const time_t * timep); 函数说明 localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回.结构tm的定义请参考gmtime().此函数返回的时间日期已经转换成当地时区. 返回值 返回结

3.mysql的中文问题,database级操作,表级操作,数据CRUD,分组操作,时间和日期,字符串相关函数,表的约束

 1 连接MYSQL服务器:mysql–uroot –p123456 查看中文问题 show variables like 'character%'; 2 修改mysql的字符集,退出mysql提示符界面: mysql -uroot -p--default_character_set=gbk; 3  数据库的操作:创建,查看,修改,删除 *创建: 创建一个名称为mydb1的数据库. createdatabase mydb1; 创建一个使用utf-8字符集的mydb2数据库. create d

[Boost]boost的时间和日期处理-(1)日期的操作

<开篇> Boost.DateTime库提供了时间日期相关的计算.格式化.转换.输入输出等等功能,为C++的编程提供了便利.不过它有如下特点: 1. Boost.DateTime 只支持1400年以后的任何Gregorian日历日期.如果你需要计算再早的日期,则需要寻求其他库来支持. 日期和时间是编程过程中常用的操作.在C标准库中,<time.h>提供了time_t类型.和tm结构类型的时间日期相关函数.Windows API也提供了FILETIME类型的相关函数.由于这里是介绍b

MATLAB——时间,日期及显示格式

一.日期和时间 1.生成指定格式日期和时间 标准日期格式 2.获取当前时间的数值 >> datestr(now,31) ans = 2017-09-11 19:56:26 >> datestr(now,'yyyy-mm-dd HH:MM:SS') ans = 2017-09-11 19:58:28 >> clock ans = 1.0e+03 * 2.0170 0.0090 0.0110 0.0200 0.0030 0.0264 >> datestr(now

Linux基础命令的操作(时间与日期,日历,计算器)

时间与日期 如果想知道Linux系统的当前时间,使用 date 命令即可显示. 上图显示的时间是2017年01月24日,星期二,18点50分26秒.CST为时区缩写(China Standard Time)表示中国的标准时间. 如果希望只显示年月日可以通过命令 date +%Y/%m/%d 当然,如果只想知道现在几点了,可以使用命令 date +%H:%M:%S 单独将时分秒显示出来 日历 如果想看这个月的日历,可以使用 cal 命令查看. 上图显示了2017年1月份的日历,并高亮显示出了今天的

C++时间和日期

C++ 日期 & 时间 C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件. 有四个与时间相关的类型:clock_t.time_t.size_t 和 tm.类型 clock_t.size_t 和 time_t 能够把系统时间和日期表示为某种整数. 结构类型 tm 把日期和时间以 C 结构的形式保存,tm 结构的定义如下: struct tm { int tm

java JDK8 学习笔记——第13章 时间与日期

第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时是借由观测远方星体跨过子午线而得,在引入UTC之前,GMT和UT是相同的. 3.国际原子时TAI 将秒的国际单位定义为铯原子辐射振动91926331770周耗费的时间,从UT的1958年开始同步. 4.世界协调时UTC 采用了闰秒修正,确保UTC与UT相差不会超过0.9秒,加入闰秒的时间通常会在6月