mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:21:38 +08:00
04.8.md
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展!
|
该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展!
|
||||||
|
|
||||||
##翻译进度
|
##翻译进度
|
||||||
4.7 [strings 和 strconv 包](eBook/04.7.md)
|
4.8 [时间和日期](eBook/04.8.md)
|
||||||
|
|
||||||
##支持本书
|
##支持本书
|
||||||
如果你喜欢本书《Go入门指南》,你可以参与到本书的翻译或纠正工作中来,具体请联系【无闻 E-mail:joe2010xtmf#163.com】,一同完善本书并帮助壮大 Go 语言在国内的学习群体,给大家提供更好的学习资源。
|
如果你喜欢本书《Go入门指南》,你可以参与到本书的翻译或纠正工作中来,具体请联系【无闻 E-mail:joe2010xtmf#163.com】,一同完善本书并帮助壮大 Go 语言在国内的学习群体,给大家提供更好的学习资源。
|
||||||
@@ -39,6 +39,9 @@ Golang中国:[golang.tc](http://www.golang.tc/)
|
|||||||
##授权许可
|
##授权许可
|
||||||
除特别声明外,本书中的内容使用 [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)(创作共用 署名-相同方式共享3.0 许可协议)授权,代码遵循 [BSD 3-Clause License](https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md)(3 项条款的 BSD 许可协议)。
|
除特别声明外,本书中的内容使用 [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)(创作共用 署名-相同方式共享3.0 许可协议)授权,代码遵循 [BSD 3-Clause License](https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md)(3 项条款的 BSD 许可协议)。
|
||||||
|
|
||||||
|
##捐助译者
|
||||||
|
如果您觉得本书翻译确实不错,并认为译者的努力值得肯定,可以通过 [此链接](https://me.alipay.com/obahua) 为译者提供小额捐助,以资鼓励。
|
||||||
|
|
||||||
##开始阅读
|
##开始阅读
|
||||||
[前言](./eBook/preface.md)
|
[前言](./eBook/preface.md)
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@ Example 4.13 [presuffix.go](examples/chapter_4/presuffix.go)
|
|||||||
|
|
||||||
strings.Contains(s, substr string) bool
|
strings.Contains(s, substr string) bool
|
||||||
|
|
||||||
##4.7.3 判断子字符串或字符在父字符串中出现的位置(索引):
|
##4.7.3 判断子字符串或字符在父字符串中出现的位置(索引)
|
||||||
`Index` 返回字符串 `str` 在字符串 `s` 中的索引(`str` 的第一个字符的索引),-1 表示字符串 `s` 不包含字符串 `str`:
|
`Index` 返回字符串 `str` 在字符串 `s` 中的索引(`str` 的第一个字符的索引),-1 表示字符串 `s` 不包含字符串 `str`:
|
||||||
|
|
||||||
strings.Index(s, str string) int
|
strings.Index(s, str string) int
|
||||||
|
@@ -1,20 +1,23 @@
|
|||||||
#4.8 时间和日期
|
#4.8 时间和日期
|
||||||
|
`time` 包为我们提供了一个数据类型 `time.Time`(作为值使用)以及显示和测量时间和日期的功能函数。
|
||||||
|
|
||||||
时间包给我们一个数据类型类型**time.Time** (当一个值使用) 以及显示和测量时间和日期的功能函数。
|
当前时间可以使用 `time.Now()` 获取,或者使用 `t.Day()`、`t.Minute()` 等等来获取时间的一部分;你甚至可以自定义时间格式化字符串,例如: `fmt.Printf("%02d.%02d.%4d\n”, t.Day(), t.Month(), t.Year())` 将会输出 `21.07.2011`。
|
||||||
|
|
||||||
当前的时间可以使用**time.Now()**,想得到时间的一部分,可以使用 t.Day(),t.Minute()等等;你也可以使用自己的时间格式化如: **fmt.Printf("%02d.%02d.%4d\n”, t.Day(), t.Month(), t.Year())** // 例如:21.07.2011
|
Duration 类型表示两个连续时刻所相差的纳秒数,类型为 int64。Location 类型映射某个时区的时间,UTC 表示通用协调世界时间。
|
||||||
|
|
||||||
Duration类型表示连续时间的两个时刻的纳秒数。Location类型映射了那个时区的时间,UTC表示通用协调世界时。
|
包中的一个预定义函数 `func (t Time) Format(layout string) string` 可以根据一个格式化字符串来将一个时间 t 转换为相应格式的字符串,你可以使用一些预定义的格式,如:`time.ANSIC` 或 `time.RFC822`。
|
||||||
|
|
||||||
有一个预定义的函数`func (t Time) Format(layout string) string` 可以根据一个格式字符串,将一个时间 t 格式化为一个字符串,格式使用预定义的格式如 `time.ANSIC` 或 `time.RFC822`。
|
一般的格式化设计是通过对于一个标准时间的格式化描述来展现的,这听起来很奇怪,但看下面这个例子你就会一目了然:
|
||||||
|
|
||||||
一般的格式化,定义了标准的时间格式,它将被用于描述被格式化的时间格式;这看来很奇怪,但是例子可以使他更清晰:
|
fmt.Println(t.Format(“02 Jan 2006 15:04”))
|
||||||
|
|
||||||
fmt.Println(t.Format(“02 Jan 2006 15:04”)) // outputs now: 21 Jul 2011 10:31
|
输出:
|
||||||
|
|
||||||
(参见程序 time.go,更多信息在 http://golang.org/pkg/time/)
|
21 Jul 2011 10:31
|
||||||
|
|
||||||
Listing 4.20—time.go :
|
其它有关时间操作的文档请参阅官方文档 [http://golang.org/pkg/time/](http://golang.org/pkg/time/)( ***译者注:国内用户可访问 [http://docs.studygolang.com/pkg/time/](http://docs.studygolang.com/pkg/time/)*** )。
|
||||||
|
|
||||||
|
Example 4.20 [time.go](examples/chapter_4/time.go)
|
||||||
|
|
||||||
package main
|
package main
|
||||||
import (
|
import (
|
||||||
@@ -44,9 +47,9 @@ Listing 4.20—time.go :
|
|||||||
// Wed Dec 21 08:52:14 +0000 UTC 2011 => 20111221
|
// Wed Dec 21 08:52:14 +0000 UTC 2011 => 20111221
|
||||||
}
|
}
|
||||||
|
|
||||||
输出在每行 `//` 的后面。
|
输出的结果已经写在每行 `//` 的后面。
|
||||||
|
|
||||||
如果你需要让应用程序中经过一定时间或定期发生一些事情(事件处理的一个特例)`time.After` `time.Ticker` 是你所需要的:§14.5将讨论这些有趣的事情。还有一个的功能 `time.Sleep(Duration d)`,它会暂停当前进程(在goroutine中,参见§14.1)一个持续时间 d。
|
如果你需要在应用程序在经过一定时间或周期执行某项任务(事件处理的特例),则可以使用 `time.After` 或者 `time.Ticker`:我们将会在第 14.5 节讨论这些有趣的事情。 另外,`time.Sleep(Duration d)` 可以实现对某个进程(实质上是 goroutine)时长为 d 的暂停。
|
||||||
|
|
||||||
##链接
|
##链接
|
||||||
- [目录](directory.md)
|
- [目录](directory.md)
|
||||||
|
Reference in New Issue
Block a user