[Go] time.Time 时间格式处理
Contents
golang中对时间和日期格式处理
date format in Go
golang 时间格式化文档time constants
|
|
Parse date with a timezone
|
|
计算两个日期的时间差
使用Time.Sub()
函数计算两个时间的差值,将差值转换为不同时间单位。
|
|
Unix time in Go
标准库Time包可以轻松处理Unix time,获取时间截,转换时间格式。
Convert date/time to Unix epoch time
标准库time.Time结构包含多个获取Unix时间截的方法,将日期转换类型为int64
的时间截
|
|
Get current Unix timestamp
获取当前时间的时间截,只需要通过time.Now()
方法获取到当前时间的Time结构,然后使用时间截方法转换。
Get current Unix/Epoch time in seconds
|
|
Get current Unix/Epoch time in milliseconds
|
|
Get current Unix/Epoch time in microseconds
|
|
Get current Unix/Epoch time in nanoseconds
|
|
Convert Unix timestamp to time.Time
标准库同样提供方法将时间截类型int64
转换为Time
Second Unix timestamp to time.Time
|
|
Millisecond Unix timestamp to time.Time
|
|
Microsecond Unix timestamp to time.Time
|
|
Nanosecond Unix timestamp to time.Time
|
|
Parse Unix timestamp from string to time.Time
将字符串类型的时间截转换为time.Time
|
|
Date and time format in Go
时间格式
时间格式定义,time constants
“01/02 03:04:05PM ‘06 -0700”
- 01 - month
- 02 - day
- 03 - hour (12h)
- 04 - minute
- 05 - second
- 06 - year
- 07 - time zone offset
Date format
Year format
Go layout | Format | Example | Description |
---|---|---|---|
2006 | YYYY | “2022” | Four-digit year |
06 | YY | “22” | Two-digit year |
Month format
Go layout | Format | Example | Description |
---|---|---|---|
January | MMMM | “July” | Full month name |
Jan | MMM | “Jul” | Three-letter abbreviation of the month |
01 | MM | “07” | Two-digit month (with a leading 0 if necessary) |
1 | M | “7” | At most two-digit month (without a leading 0) |
Day format
Go layout | Format | Example | Description |
---|---|---|---|
Monday | DDDD | “Tuesday” | Full weekday name |
Mon | DDD | “Tue” | Three-letter abbreviation of the weekday |
02 | DD | “08” | Two-digit month day (with a leading 0 if necessary) |
_2 | _D | " 8” | Two-character month day with a leading space if necessary |
2 | D | “8” | At most two-digit month day (without a leading 0) |
002 | ddd | “074” | Three-digit day of the year (with a leading 0 if necessary) |
__2 | __d | " 74” | Three-character day of the year with a leading spaces if necessary |
Time format
Hour format
Go layout | Format | Example | Description |
---|---|---|---|
15 | hh | “17” | Two-digit 24h format hour |
03 | hh | “05” | Two digit 12h format hour (with a leading 0 if necessary) |
3 | h | “5” | At most two-digit 12h format hour (without a leading 0) |
PM | am/pm | “AM” | AM/PM mark (uppercase) |
pm | am/pm | “am” | AM/PM mark (lowercase) |
Minute format
Go layout | Format | Example | Description |
---|---|---|---|
04 | mm | "07” | Two-digit minute (with a leading 0 if necessary) |
4 | m | "7” | At most two-digit minute (without a leading 0) |
Second format
Go layout | Format | Example | Description |
---|---|---|---|
05 | ss | “09” | Two-digit second (with a leading 0 if necessary) |
5 | s | “9” | At most two-digit second (without a leading 0) |
.0, .00, …, .000000000 | .s | “.126284000” | A fractional second (trailing zeros included) |
.9, .99, …, .999999999 | .s | “.126284” | A fractional second (trailing zeros omitted) |
Time zone format
Go layout | Format | Example | Description |
---|---|---|---|
MST | TTT | “CEST” | Abbreviation of the time zone |
-070000 | ±hhmmss | “+010000” | Numeric time zone offset with hours, minutes, and seconds |
-07:00:00 | ±hh:mm:ss | “+01:00:00” | Numeric time zone offset with hours, minutes, and seconds separated by colons |
-0700 | ±hhmm | “+0100” | Numeric time zone offset with hours and minutes |
-07:00 | ±hh:mm | “+01:00” | Numeric time zone offset with hours and minutes separated by colons |
-07 | ±hh | “+01” | Numeric time zone offset with hours |
Z070000 | Z or ±hhmmss | “+010000” | Like -070000 but prints “Z” instead of “+000000” for the UTC zone (ISO 8601 behavior) |
Z07:00:00 | Z or ±hh:mm:ss | “+01:00:00” | Like -07:00:00 but prints “Z” instead of “+00:00:00” for the UTC zone (ISO 8601 behavior) |
Z0700 | Z or ±hhmm | “+0100” | Like -0700 but prints “Z” instead of “+0000” for the UTC zone (ISO 8601 behavior) |
Z07:00 | Z or ±hh:mm | “+01:00” | Like -07:00 but prints “Z” instead of “+00:00” for the UTC zone (ISO 8601 behavior) |
Z07 | Z or ±hh | “+01” | Like -07 but prints “Z” instead of “+00” for the UTC zone (ISO 8601 behavior) |