Golang은 상대적으로 젊은 프로그래밍 언어이지만 매우 높은 운영 효율성과 강력한 동시 처리 기능 덕분에 점점 더 개발자들의 선호를 받고 있습니다. 실제 개발에서는 시간을 다른 형식의 문자열로 변환하거나, 문자열을 시간으로 변환해야 하는 경우가 종종 있습니다. 이번 글에서는 Golang에서 시간 변환을 효율적으로 구현하는 방법을 공유하겠습니다.
- 시간 유형
Golang에는 time.Time과 time.Duration이라는 두 가지 주요 시간 유형이 있습니다. 그 중 time.Time은 2021년 7월 1일 12시와 같이 특정 시간을 나타낼 수 있는 시점을 나타내고, time.Duration은 시간을 나타낼 수 있는 기간을 나타낸다. 10초, 5분 등 특정 시점 사이의 범위입니다.
- 시간의 형식화된 출력
time.Time 유형의 시간을 문자열로 변환해야 하는 경우 time.Time 유형에서 Format() 메서드를 사용할 수 있습니다. Format() 메서드는 시간 형식 레이아웃을 입력 매개 변수로 받은 다음 시간 형식을 해당 문자열로 지정합니다.
다음은 샘플 코드입니다.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
}
로그인 후 복사
실행 결과:
2021-07-01 12:00:00
로그인 후 복사
다음 표에 표시된 것처럼 형식 문자열에서 서로 다른 문자는 서로 다른 의미를 나타냅니다.
형식 문자 |
의미 |
2006 |
연도(예제에 사용된 연도) |
01 |
month |
02 |
day |
15 |
시(24시간제) |
03 | (12시간제) |
04 | 분 |
05 | 초 |
.000 | 밀리초 |
PM | AM 또는 PM(12시간 형식) |
월요일 | 요일(전체 이름, 예: Monday) |
Mon | 요일(약식 이름, 예: Mon) |
Jan | 월(전체 이름, 예: January ) |
Jan | month(Jan과 같은 약식 이름) |
MST | 시간대 이름(MST, PST 등) |
미리 정의된 형식 문자를 사용하는 것 외에, 다음과 같이 형식 문자열을 사용자 정의할 수도 있습니다.
t := time.Now()
fmt.Println(t.Format("2006年01月02日 15:04:05.000 PM MST"))
로그인 후 복사
문자열을 시간 유형으로-
문자열을 time.Time 유형의 시간으로 변환해야 하는 경우 time.Parse() 메서드를 사용할 수 있습니다. Parse() 메서드는 두 개의 매개 변수를 받습니다. 첫 번째 매개 변수는 시간 문자열이고 두 번째 매개 변수는 시간 형식 레이아웃입니다. 예:
package main
import (
"fmt"
"time"
)
func main() {
str := "2021-07-01 12:00:00"
layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
}
fmt.Println(t)
}
로그인 후 복사
위 코드에서는 문자열을 time.Time 유형의 변수 t로 변환하고 코드의 변환 프로세스에서 오류를 확인하여 프로그램의 견고성을 보장했습니다.
시간 차이 계산-
Golang에서는 뺄셈을 직접 사용하여 시간 차이를 계산할 수 있습니다. 예:
package main
import (
"fmt"
"time"
)
func main() {
t1 := time.Date(2021, 7, 1, 12, 0, 0, 0, time.Local)
t2 := time.Date(2021, 7, 1, 12, 1, 0, 0, time.Local)
duration := t2.Sub(t1)
fmt.Println(duration)
}
로그인 후 복사
위 코드에서는 time.Date() 함수를 사용하여 Two times를 생성합니다. t1과 t2를 비교하고 시간 차이를 계산하고 결과를 time.Duration 유형의 변수 지속 기간에 저장합니다.
타임스탬프를 time.Time 유형으로 변환-
프로그램에서 타임스탬프는 때때로 시간을 나타내는 데 사용됩니다. Golang에서는 time.Unix() 메서드를 사용하여 타임스탬프를 time.Time 유형 time으로 변환할 수 있습니다. 예:
package main
import (
"fmt"
"time"
)
func main() {
timestamp := int64(1625133600)
t := time.Unix(timestamp, 0)
fmt.Println(t)
}
로그인 후 복사
실행 결과:
2021-07-01 13:00:00 +0800 CST
로그인 후 복사
위 코드에서 time.Unix() 메소드 Time t를 사용하여 타임스탬프 1625133600(2021년 7월 1일 베이징 시간 13시를 나타냄)을 타임스탬프로 변환했습니다. 시간.시간 유형입니다.
시간 연산에 대한 주의 사항-
시간 연산을 위해 Golang을 사용하는 과정에서 다음 사항에 주의해야 합니다.
1) 문자열을 시간으로 변환하기 위해 time.Parse() 메서드를 사용할 때 time.Time 유형 이 작업을 수행할 때 시간 문자열이 시간 형식 레이아웃의 형식과 일치하는지 확인해야 합니다. 그렇지 않으면 오류가 발생합니다.
2) 시간을 처리할 때 시간대 변환을 수행해야 하는 경우 time.UTC() 및 time.Local 두 변수를 사용해야 합니다. time.UTC()는 협정 세계시를 나타내고 time.Local은 위치를 나타냅니다. 현재 시스템.
3) 시간을 처리할 때 연, 월, 일, 시, 분, 초 등 별도의 시간 부분을 구해야 하는 경우 Year(), Month(), Day(), Hour를 사용할 수 있습니다. (), Minute( time.Time 유형의 ), Second() 및 기타 메소드.
4) time.Duration 유형의 변수를 사용하여 시간 범위를 표현하는 경우 time.ParseDuration() 메서드를 사용하면 문자열 유형의 시간 범위를 time.Duration 유형의 변수로 변환하여 정확도를 제어할 수 있습니다.
요컨대, Golang을 사용하여 시간을 처리할 때 시간의 정확성과 프로그램의 견고성을 보장하기 위해 세부 사항에 주의해야 합니다.
요약-
이 기사에서는 시간 형식 출력, 문자열을 시간으로 변환하는 것을 포함하여 Golang에서 시간 변환 작업을 수행하는 방법에 대해 논의했습니다.Time 유형, 시간 차이 계산 및 타임스탬프를 시간으로 변환.Time 유형 및 지식의 다른 측면. 이러한 지식을 습득함으로써 시간 관련 문제를 보다 효율적으로 처리하고 프로그램의 실용성과 신뢰성을 향상시킬 수 있습니다.
위 내용은 Golang에서 시간 변환을 효율적으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!