func main() {
// 查看当前时间
now := time.Now()
// 直接使用时. 输出的是当前的时间. 时区. 毫秒数
fmt.Printf(“now type = %T && now = %v”,now,now)
}
输出:now type = time.Time && now = 2021-12-04 14:26:56.096042 +0800 CST m=+0.002252801
2)查看各个时间显示信息
package main
import (
“fmt”
“time”
)
func main() {
now := time.Now()
fmt.Printf(“年 = %v\n”,now.Year())
// 因为月份输出的是英文. 所以我们可以使用 int 进行转义
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())
}
1)通过 Printf
和 Sprintf
这两种方式都可以
package main
import (
“fmt”
“time”
)
func main() {
now := time.Now()
fmt.Printf(“当前年月日: %d-%d-%d %d:%d:%d\n”,now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
dateStr := fmt.Sprintf(“当前年月日: %d-%d-%d %d:%d:%d\n”,now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
fmt.Printf(“dateStr = %v”,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.Println(now.Format(“15:04:05”))
fmt.Println()
}
- PS:
2006/01/02 15:04:05
这个格式是固定的,并不可以根据当前时间来自定义配置。
conse (
Nanosecond = 1ns (纳秒)
Microsecond = 1000 * Nanosecond = 1 (微秒)
Millisecond = 1000 * Microsecond = 1 (毫秒)
Second = 1000 * Millisecond = 1 (秒)
Minute = 60 * Second = 1 (分钟)
Hour = 60 * Minute = 1 (小时)
)
- 常量的作用: 在程序中可以用于获取指定时间单位的时间,比如我们想要得到 100 毫秒(
100 * time.Millisecond
)
1)时间常量和 Sleep
(休眠) 配合使用
package main
import (
“fmt”
“time”
)
func main() {
// 每隔 0.1 秒就打印一个数字. 打印到 100 时就退出
i := 0
for {
i++
fmt.Println(i)
time.Sleep(time.Millisecond * 100)
// 当条件满足时. 便退出循环
if i == 100 {
break
}
}
}
2)time
中 Unix 和 UnixNano 的使用:
package main
import (
“fmt”
“time”
)
func main() {
now := time.Now()
fmt.Printf(“Unix 的时间戳 = %v && Unixnano 的时间戳 = %v”,now.Unix(),now.UnixNano())
}
- 输出:
Unix 的时间戳 = 1638604549 && Unixnano 的时间戳 = 1638604549410002500
Unix 和 Unixnao 的区别在于: 前者显示的是秒数,后者显示的是纳秒(这两个都是从 1970 年 1 月 1 日
开始,到现在的时间)
=========================================================================
统计出 test()
函数的执行时间:
package main
import (
“fmt”
“time”
“strconv”
)
func test() {
str := “”
for i := 0; i < 100000; i++ {
// strconv.Itoa 的作用就是将整数转换成字符串
str += “Hello” + strconv.Itoa(i)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)
总结
上述知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。
很多人担心学了容易忘,这里教你一个方法,那就是重复学习。
打个比方,假如你正在学习 spring 注解,突然发现了一个注解@Aspect,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。
从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。
人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。
从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。
[外链图片转存中…(img-cDrAxNrU-1713851427740)]
人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!