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시간제) |
(12시간제) | |
분 | |
초 | |
밀리초 | |
AM 또는 PM(12시간 형식) | |
요일(전체 이름, 예: Monday) | |
요일(약식 이름, 예: Mon) | |
월(전체 이름, 예: January ) | |
month(Jan과 같은 약식 이름) | |
시간대 이름(MST, PST 등) |
t := time.Now() fmt.Println(t.Format("2006年01月02日 15:04:05.000 PM MST"))
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로 변환하고 코드의 변환 프로세스에서 오류를 확인하여 프로그램의 견고성을 보장했습니다.
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 유형의 변수 지속 기간에 저장합니다.
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에서 시간 변환을 효율적으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!