Go 언어의 시간 처리 라이브러리 사용

WBOY
풀어 주다: 2023-06-03 12:10:33
원래의
697명이 탐색했습니다.

소프트웨어 개발에서 처리 시간은 반복되는 문제입니다. 특히 대규모 시스템에서 시간은 이벤트 기록, 작업 예약 및 데이터 분석에 필수적인 부분입니다. 따라서 적절한 시간 처리 라이브러리를 사용하는 것이 매우 중요한 작업이 됩니다. 이 기사에서는 Go 언어에서 시간 처리 라이브러리 time의 사용을 소개합니다. time

时间的表示

在Go语言中,我们可以使用time.Time类型来表示时间。一个Time类型的值包含了年、月、日、时、分、秒、纳秒和时区信息。这个类型是内置的,因此我们不需要安装任何额外的库来使用它。

获取当前时间

获取当前本地时间的方法是使用time.Now()函数。它会返回一个time.Time类型的时间对象,该对象表示程序运行时的当前时间。

func main() {
    current_time := time.Now()
    fmt.Println(current_time)
}
로그인 후 복사

输出结果:

2021-05-17 16:34:22.7241986 +0800 CST m=+0.000731901
로그인 후 복사

时间格式化

将时间按照不同的格式显示是很常见的需求。在Go语言中,我们可以使用time.Format()函数来进行时间格式化。这个函数接收一个格式字符串,根据这个格式将时间对象转换成对应的字符串。

func main() {
    current_time := time.Now()
    formatted_time := current_time.Format("2006-01-02 15:04:05")
    fmt.Println(formatted_time)
}
로그인 후 복사

输出结果:

2021-05-17 16:34:22
로그인 후 복사

在格式化字符串中,几个常用的占位符如下:

占位符含义
2006固定为4位的年份,表示是一种标准
01固定为2位的月份,不足两位左侧补0
02固定为2位的日期,不足两位左侧补0
15固定为2位的小时,24小时制,不足两位左侧补0
04固定为2位的分钟,不足两位左侧补0
05固定为2位的秒,不足两位左侧补0

时间操作

Go语言的时间处理库还提供了一些时间操作方法。

增加或减少时长

time.Add()方法可以让我们添加或减少一段时间:

func main() {
    current_time := time.Now()
    after_one_hour := current_time.Add(time.Hour)
    fmt.Println(after_one_hour)
}
로그인 후 복사

输出结果:

2021-05-17 17:34:22.6523704 +0800 CST m=+3601.928903701
로그인 후 복사

在这个例子中,我们使用了time.Hour表示一个小时的时长,然后使用Add()方法将当前时间加上这段时长。这个方法的返回值是一个时间对象,它表示了当前时间往后一小时的时间点。

我们同样可以使用time.Sub()方法来计算两个时间之间的时间差:

func main() {
    start_time := time.Now()
    end_time := time.Now().Add(time.Hour)
    duration := end_time.Sub(start_time)
    fmt.Println(duration)
}
로그인 후 복사

输出结果:

1h0m0s
로그인 후 복사

这里的计算结果是一个time.Duration类型的值,它表示两个时间点之间的时长。

设置时间

time.Date()方法可以让我们根据指定的年、月、日、时、分、秒以及时区创建一个时间对象:

func main() {
    t := time.Date(2021, 5, 17, 15, 30, 0, 0, time.Local)
    fmt.Println(t)
}
로그인 후 복사

输出结果:

2021-05-17 15:30:00 +0800 CST
로그인 후 복사

获取时间信息

Time

시간 표현

Go 언어에서는 time.Time 유형을 사용하여 시간을 표현할 수 있습니다. Time 유형의 값에는 연도, 월, 일, 시, 분, 초, 나노초 및 시간대 정보가 포함됩니다. 이 유형은 내장되어 있으므로 사용하기 위해 추가 라이브러리를 설치할 필요가 없습니다.

현재 시간 가져오기

현재 현지 시간을 가져오는 방법은 time.Now() 함수를 사용하는 것입니다. 프로그램이 실행 중인 현재 시간을 나타내는 time.Time 유형의 시간 개체를 반환합니다.

func main() {
    current_time := time.Now()
    fmt.Println(current_time.Year())      // 获取年份
    fmt.Println(current_time.Month())     // 获取月份
    fmt.Println(current_time.Day())       // 获取日期
    fmt.Println(current_time.Hour())      // 获取小时数
    fmt.Println(current_time.Minute())    // 获取分钟数
    fmt.Println(current_time.Second())    // 获取秒数
    fmt.Println(current_time.Weekday())   // 获取星期几,0表示星期日
}
로그인 후 복사

출력 결과:
    2021
    May
    17
    16
    34
    22
    Monday
    로그인 후 복사

    시간 형식

  • 시간을 다른 형식으로 표시하는 것은 매우 일반적인 요구 사항입니다. Go 언어에서는 time.Format() 함수를 사용하여 시간 형식을 지정할 수 있습니다. 이 함수는 형식 문자열을 수신하고 이 형식에 따라 시간 개체를 해당 문자열로 변환합니다.
  • rrreee
  • 출력 결과:
  • rrreee형식 문자열에서 일반적으로 사용되는 몇 가지 자리 표시자는 다음과 같습니다. 🎜 tr> tr>초는 2자리로 고정됩니다. 2자리 미만인 경우 왼쪽에 0을 추가하세요. tbody>
    자리 표시자 의미
    2006 연도가 4자리로 고정되어 표준임을 나타냅니다.
    01 월은 2자리로 고정되며, 누락된 자리는 왼쪽에 0으로 채워집니다.
    02 날짜는 2자리로 고정되며 누락된 숫자는 왼쪽에 0으로 채워집니다.
    15 24시간 형식의 시간은 2자리로 고정되며, 누락된 숫자는 왼쪽에 0이 채워집니다.
    04 code> 분은 2자리로 고정되며, 누락된 숫자는 왼쪽에 0이 채워집니다.
    05

    시간 연산

    🎜Go 언어의 시간 처리 라이브러리는 몇 가지 시간 조작 방법도 제공합니다. 🎜🎜기간 늘리기 또는 줄이기🎜🎜 time.Add() 메서드를 사용하면 기간을 추가하거나 줄일 수 있습니다. 🎜rrreee🎜출력 결과: 🎜rrreee🎜이 예에서는 time.Hour는 1시간의 길이를 나타내고 Add() 메서드를 사용하여 이 시간 길이에 현재 시간을 추가합니다. 이 메서드의 반환 값은 현재 시간으로부터 1시간 후의 시점을 나타내는 시간 객체입니다. 🎜🎜time.Sub() 메서드를 사용하여 두 시간 사이의 시간 차이를 계산할 수도 있습니다. 🎜rrreee🎜출력 결과: 🎜rrreee🎜여기서 계산 결과는 time.Duration입니다. 두 시점 사이의 시간 길이를 나타내는 유형의 값입니다. 🎜🎜시간 설정🎜🎜 time.Date() 메서드를 사용하면 지정된 연도, 월, 일, 시, 분, 초 및 시간대를 기반으로 시간 개체를 생성할 수 있습니다. 🎜rrreee🎜출력 결과: 🎜 rrreee🎜시간 정보 가져오기🎜🎜 Time 유형은 연도, 월, 일, 시, 분, 초 등과 같은 시간 정보를 가져오는 몇 가지 방법을 제공합니다. 다음은 일반적으로 사용되는 몇 가지 방법입니다. 🎜rrreee🎜출력 결과: 🎜rrreee🎜참조 문서🎜🎜🎜[Go 언어 공식 문서](https://golang.org/pkg/time/)🎜🎜[Golang 시간 및 사용 방법 날짜] (https://www.runoob.com/w3cnote/go-datetime.html)🎜🎜

    위 내용은 Go 언어의 시간 처리 라이브러리 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿