日期和时间 package main import ( "fmt" "time" ) func main() { // 获取当前时间 current := time.Now() // 格式化字符串输出 fmt.Println(current.String()) // Format函数格式化输出 // 无论要格式化什么时间,"2006-01-02 15:04:05"这几个数字固定不变 fmt.Println("MM-DD-YYYY: &q…
本文源码:GitHub·点这里 || GitEE·点这里 一.时间和日期 在系统开发中,日期与时间作为重要的业务因素,起到十分关键的作用,例如同一个时间节点下的数据生成,基于时间范围的各种数据统计和分析,集群节点统一时间避免超时等. 在时间和日期中有几个关键概念: 日期:通常年月日的组合表示当前日期. 时间:通常时分秒的组合表示当前时间. 时区:世界各国家与地区经度不同,划分24个标准时区,相邻时区的时间相差一个小时. 时间戳:从UTC时间的1970-1-1 00:00:00起到现在的总秒数.…
Condition实例始终被绑定到一个锁(Lock)上.Lock替代了Java的synchronized方法,而Condition则替代了Object的监视器方法,包含wait.notify和notifyAll(想很多其它的了解能够看我的博客:Java并发编程3-等待.通知和中断).而在Condition中相应为await.signal和signalAll.这篇文章主要讲述Condition的用法.以及它的实现机制. Condition的使用 与Object的监视器方法不同.每一个Lock能够相…
检查文件是否存在 在此程序同目录下创建log.txt文件,以检测. package main import ( "os" "fmt" ) func main() { if _, err := os.Stat("log.txt"); err == nil { fmt.Println("Log.txt file exists") } } 检查文件是否不存在 package main import ( "os"…
bool to string strconv包的FormatBool函数用于将bool转为string package main import ( "fmt" "strconv" ) func main() { isNew := true isNewStr := strconv.FormatBool(isNew) // message := "Purchased item is " + isNew 会报错,类型不匹配 message := &qu…
从数据库中读取数据 在http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下: package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" ) // 用struct类型将来自SQL数据库的数据映射到内存中的对象 type Profile struct { Prof…
下载网页 package main import ( "io/ioutil" "net/http" "fmt" ) func main() { url := "http://www.cnblogs.com/GaiheiluKamei" response, err := http.Get(url) if err != nil { panic(err) } defer response.Body.Close() html, err…
捕捉信号 // 运行此程序,控制台将打印"Waiting for signal" // 按Ctrl + C 发送信号以关闭程序,将发生中断 // 随后控制台依次打印"Signal .."."Exiting..." package main import ( "os" "os/signal" "syscall" "fmt" ) func main() { // 缓冲通道…
同时运行多个函数 观察常规代码和并发代码的输出顺序. // 常规代码,顺序执行,依次输出 package main import ( "fmt" "time" ) func main() { strN := []string{"a", "b", "c", "d"} for _, strV := range strN { time.Sleep(time.Second) fmt.Printl…
自定义错误类型 Go中可以使用errors.New()创建错误信息,也可以通过创建自定义错误类型来满足需求.error是一个接口类型,所有实现该接口的类型都可以当作一个错误类型. // error类型定义 type error interface { // Error方法给出了错误描述 Error() string } package main import "fmt" // 创建一个表示错误的结构体类型,错误类型命名约定以Error结尾 type myError struct { s…