教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang时间转换

golang时间转换

发布时间:2022-02-26   编辑:jiaochengji.com
教程集为您提供golang时间转换等资源,欢迎您收藏本站,我们将为您提供最新的golang时间转换资源
<h2 id="datetime转换成时间字符串">1.datetime转换成时间字符串</h2> <pre class="golang"><code>package main import ( "fmt" "reflect" "time" ) func main() { now := time.Now() // 当前 datetime 时间 fmt.Println(reflect.TypeOf(now)) // 打印当前时间的类型 fmt.Println(now) // 打印当前时间 fmt.Println("***********************") t1 := now.Format("2006-01-02 15:04:05") // 把当前 datetime 时间转换成时间字符串 fmt.Println(t1) fmt.Println(reflect.TypeOf(t1)) }</code></pre>

程序执行结果

<pre class="golang"><code>time.Time 2019-09-16 17:51:01.2357834 0800 CST m= 0.004988701 *********************** 2019-09-16 17:51:01 string</code></pre> <h2 id="datetime转换成时间戳">2.datetime转换成时间戳</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func parse_datetime_to_timestamp(d time.Time) int64 { unix_time := d.Unix() return unix_time } func main() { now := time.Now() // 当前 datetime 时间 t1 := parse_datetime_to_timestamp(now) // 转换成时间戳 tomorrow := now.AddDate(0, 0, 1) // 一天之后的 datetime 时间 t2 := parse_datetime_to_timestamp(tomorrow) // 转换成时间戳 fmt.Println(t1) fmt.Println(t2) }</code></pre>

程序执行结果

<pre class="golang"><code>1568631868 1568718268</code></pre> <h2 id="时间戳转换成时间字符串">3.时间戳转换成时间字符串</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func parse_timestamp_to_timestr(t int64, flag int) string { var time_str string if flag == 1 { time_str = time.Unix(t, 0).Format("2006.01.02") } else if flag == 2 { time_str = time.Unix(t, 0).Format("2006-01-02 15:04:05") } else if flag == 3 { time_str = time.Unix(t, 0).Format("2006-01-02 15:04") } else { time_str = time.Unix(t, 0).Format("2006-01-02") } return time_str } func main() { var t1 int64 t1 = 1567778332 str1 := parse_timestamp_to_timestr(t1,3) fmt.Println(str1) }</code></pre>

程序执行结果

<pre class="golang"><code>2019-09-06 21:58</code></pre> <h2 id="时间字符串转换成时间戳">4.时间字符串转换成时间戳</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func parse_timestr_to_timestamp(time_str string, flag int) int64 { var t int64 loc, _ := time.LoadLocation("Local") if flag == 1 { t1, _ := time.ParseInLocation("2006.01.02 15:04:05", time_str, loc) t = t1.Unix() } else if flag == 2 { t1, _ := time.ParseInLocation("2006-01-02 15:04", time_str, loc) t = t1.Unix() } else if flag == 3 { t1, _ := time.ParseInLocation("2006-01-02", time_str, loc) t = t1.Unix() } else if flag == 4 { t1, _ := time.ParseInLocation("2006.01.02", time_str, loc) t = t1.Unix() } else { t1, _ := time.ParseInLocation("2006-01-02 15:04:05", time_str, loc) t = t1.Unix() } return t } func main() { time_str1 := "2019-09-16 00:00:00" time_str2 := "2019-09-16 15:04" time_str3 := "2019-09-16" time_str4 := "2019.09.18" t1 := parse_timestr_to_timestamp(time_str1,5) fmt.Println(t1) t2 := parse_timestr_to_timestamp(time_str2,2) fmt.Println(t2) t3 := parse_timestr_to_timestamp(time_str3,3) fmt.Println(t3) t4 := parse_timestr_to_timestamp(time_str4,4) fmt.Println(t4) }</code></pre>

程序执行结果

<pre class="golang"><code>1568563200 1568617440 1568563200 1568736000</code></pre> <h2 id="时间戳转换成datetime时间">5.时间戳转换成datetime时间</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func parse_timestamp_to_datetime(t int64) time.Time { return time.Unix(t,0) } func main() { var t1 int64 t1 = 1568634050 time1 := parse_timestamp_to_datetime(t1) fmt.Println(time1) }</code></pre>

程序执行结果

<pre class="golang"><code>2019-09-16 19:40:50 0800 CST</code></pre> <h2 id="时间字符串转换成时间戳-1">6.时间字符串转换成时间戳</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func parse_timestr_to_datetime(time_str string, flag int) time.Time { if flag == 1 { t, error1 := time.Parse("2006-01-02 15:04:05", time_str) if error1 != nil { panic(error1) } return t } else if flag == 2 { t, error2 := time.Parse("2006-01-02 15:04", time_str) if error2 != nil { panic(error2) } return t } else if flag == 3 { t, error3 := time.Parse("2006-01-02", time_str) if error3 != nil { panic(error3) } return t } else if flag == 4 { t, error4 := time.Parse("2006.01.02 15:04:05", time_str) if error4 != nil { panic(error4) } return t } else if flag == 5 { t, error5 := time.Parse("2006.01.02 15:04", time_str) if error5 != nil { panic(error5) } return t } else { t, err := time.Parse("2006.01.02", time_str) if err != nil { panic(err) } return t } } func main() { time_str1 := "2019-09-16 15:04:05" t1 := parse_timestr_to_datetime(time_str1, 1) fmt.Println(t1) time_str2 := "2019-09-16 15:04" t2 := parse_timestr_to_datetime(time_str2, 2) fmt.Println(t2) time_str3 := "2019-09-16" t3 := parse_timestr_to_datetime(time_str3, 3) fmt.Println(t3) time_str4 := "2019.09.16 15:04:05" t4 := parse_timestr_to_datetime(time_str4, 4) fmt.Println(t4) time_str5 := "2019.09.16 15:04" t5 := parse_timestr_to_datetime(time_str5, 5) fmt.Println(t5) time_str6 := "2019.09.16" t6 := parse_timestr_to_datetime(time_str6, 6) fmt.Println(t6) }</code></pre>

程序执行结果

<pre class="golang"><code>2019-09-16 15:04:05 0000 UTC 2019-09-16 15:04:00 0000 UTC 2019-09-16 00:00:00 0000 UTC 2019-09-16 15:04:05 0000 UTC 2019-09-16 15:04:00 0000 UTC 2019-09-16 00:00:00 0000 UTC</code></pre> <h2 id="日期加减操作">7.日期加减操作</h2> <pre class="golang"><code>package main import ( "fmt" "time" ) func main() { now := time.Now() // 当前 datetime时间 tomorrow := now.AddDate(0, 0, 1) // 一天之后的时间 fmt.Println(tomorrow) day_after_15 := now.AddDate(0, 0, -15) // 15天之前的时间 fmt.Println(day_after_15) }</code></pre>

程序执行结果

<pre class="golang"><code>2019-09-17 17:55:59.4755575 0800 CST 2019-09-01 17:55:59.4755575 0800 CST</code></pre>

总结:

<pre class="golang"><code>import ( "fmt" "time" ) func parse_datetime_to_timestr(t time.Time, flag int) string { /** 把 datetime 转换成 时间字符串 t: datetime 时间,比如:2019-09-17 09:45:42.5962359 0800 CST m= 0.003989201 flag: 标识位,决定输出的时间字符串的格式 */ var time_str string if flag == 1 { time_str = t.Format("2006-01-02 15:04:05") } else if flag == 2 { time_str = t.Format("2006-01-02 15:04") } else if flag == 3 { time_str = t.Format("2006-01-02") } else if flag == 4 { time_str = t.Format("2006.01.02 15:04:05") } else if flag == 6 { time_str = t.Format("2006.01.02 15:04") } else { time_str = t.Format("2006.01.02") } return time_str } func parse_datetime_to_timestamp(t time.Time) int64 { /** 把 datetime 转换成时间戳 t: datetime 时间 */ return t.Unix() } func parse_timestr_to_datetime(time_str string, flag int) time.Time { /** 把时间字符串转换成 datetime 时间 time_str: 时间字符串,比如:2019-09-17 15:04:05 flag: 标识位,决定输入的时间字符串的格式 */ if flag == 1 { t, error1 := time.Parse("2006-01-02 15:04:05", time_str) if error1 != nil { panic(error1) } return t } else if flag == 2 { t, error2 := time.Parse("2006-01-02 15:04", time_str) if error2 != nil { panic(error2) } return t } else if flag == 3 { t, error3 := time.Parse("2006-01-02", time_str) if error3 != nil { panic(error3) } return t } else if flag == 4 { t, error4 := time.Parse("2006.01.02 15:04:05", time_str) if error4 != nil { panic(error4) } return t } else if flag == 5 { t, error5 := time.Parse("2006.01.02 15:04", time_str) if error5 != nil { panic(error5) } return t } else { t, err := time.Parse("2006.01.02", time_str) if err != nil { panic(err) } return t } } func parse_timestr_to_timestamp(time_str string, flag int) int64 { /** 把时间字符串转换成时间戳 time_str: 时间字符串,比如:2019-09-17 09:45:42 flag: 标识位,决定传入的时间字符串的格式 */ var t int64 loc, _ := time.LoadLocation("Local") if flag == 1 { t1, _ := time.ParseInLocation("2006.01.02 15:04:05", time_str, loc) t = t1.Unix() } else if flag == 2 { t1, _ := time.ParseInLocation("2006-01-02 15:04", time_str, loc) t = t1.Unix() } else if flag == 3 { t1, _ := time.ParseInLocation("2006-01-02", time_str, loc) t = t1.Unix() } else if flag == 4 { t1, _ := time.ParseInLocation("2006.01.02", time_str, loc) t = t1.Unix() } else { t1, _ := time.ParseInLocation("2006-01-02 15:04:05", time_str, loc) t = t1.Unix() } return t } func parse_timestamp_to_timestr(stamp int64, flag int) string { /** 把时间戳转换成时间字符串 stamp: 时间戳,比如:1568685105,调用此方法时需先声明为 int64 类型 flag: 标识位,决定输入的时间字符串的格式 */ var time_str string if flag == 1 { time_str = time.Unix(stamp, 0).Format("2006-01-02") } else if flag == 2 { time_str = time.Unix(stamp, 0).Format("2006-01-02 15:04:05") } else if flag == 3 { time_str = time.Unix(stamp, 0).Format("2006-01-02 15:04") } else if flag == 4 { time_str = time.Unix(stamp, 0).Format("2006.01.02 15:04:05") } else if flag == 5 { time_str = time.Unix(stamp, 0).Format("2006.01.02 15:04") } else { time_str = time.Unix(stamp, 0).Format("2006.01.02") } return time_str } func parse_timestamp_to_datetime(t int64) time.Time { /** 时间戳转换成 datetime 时间 */ return time.Unix(t, 0) } func get_after_day(day_range, flag int) time.Time { /** 获取多少天,多少月或者多少年之前或之后的时间 day_range: 间隔的天数,月数或者年份数 flag: 决定是取天数,月数还是年数 */ now := time.Now() var tmp_day time.Time if flag == 1 { tmp_day = now.AddDate(day_range, 0, 0) } else if flag == 2 { tmp_day = now.AddDate(0, day_range, 0) } else { tmp_day = now.AddDate(0, 0, day_range) } return tmp_day } func get_after_time(time_range string) time.Time { /** 获取多少小时,分钟及秒之前或之后的时间 time_range: 时间差,比如: 10h 获取10小时之后的时间 -10h 获取10小时之前的时间 10m 获取10分钟之后的时间 -10m 获取10分钟之后的时间 10s 获取10秒之后的时间 -10s 获取10秒之后的时间 */ m, _ := time.ParseDuration(time_range) tmp := time.Now().Add(m) return tmp } func get_current(t time.Time) { current_year := t.Year() // 获取年份 fmt.Println(current_year) current_month := t.Month() // 获取月份 fmt.Println(current_month) current_day := t.Day() // 获取天数 fmt.Println(current_day) current_hour := t.Hour() // 获取小时数 fmt.Println(current_hour) current_minute := t.Minute() // 获取分钟数 fmt.Println(current_minute) current_second := t.Second() // 获取秒数 fmt.Println(current_second) current_nanosecond := t.Nanosecond() // 获取纳秒数 fmt.Println(current_nanosecond) }</code></pre>

转载于:https://www.cnblogs.com/renpingsheng/p/11532190.html

到此这篇关于“golang时间转换”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang 时间的处理
golang 时间和时间戳的转换
golang时间转换
一看就懂系列之Golang的Map如何做到最省空间?
golang会取代php吗
Golang 格式化时间
python时间戳是什么
golang 获取当前时间
golang 时间格式转换汇总
Golang将IP转为整型int存储

[关闭]
~ ~