Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

Code Habit

Golang ) package time 본문

카테고리 없음

Golang ) package time

코드베어 2020. 6. 16. 10:23

time 패키지는 현재 시간을 구하거나, 일정한 시간을 측정하는 등 시간 관련 기능을 다룰 때 사용한다.

 

- 현재 시간 구하기 & 포맷 변경

// main.go
package main
 
import (
    "fmt"
    "time"
)
 
func main() {
 
    // 현재 시간
    now := time.Now()
    fmt.Println(now) // 2020-06--19 14:45:56.1516017 +0900 KST m=+0.006982201
 
    // yyyy-mm-dd hh:mm:ss 형식으로 포맷
    custom := now.Format("2006-01-02 15:04:05")
    fmt.Println(custom) // 2020-06-19 14:45:56
 
    custom = now.Format("2006-01-02")
    fmt.Println(custom) // 2020-06-19
 
    // x
    custom = now.Format("yyyy-mm-dd")
    fmt.Println(custom) // yyyy-mm-dd
}

Format() 함수를 통해 흔히 사용하는 'yyyy-mm-dd' 포맷으로 변경할 때 "yyyy-mm-dd"가 아닌 "2006-01-02"를 인자로 넘겨줘야 한다.(다른 날짜를 넘기면 원하는 결과가 출력되지 않는다.)

 

- 시간 가(감)산하기

// main.go
package main
 
import (
    "fmt"
    "time"
)
 
func main() {
 
    // 현재 시간
    var now = time.Now()
 
    // 시간 감산하기
    var date = now.AddDate(-100)
    fmt.Println(date) // 2019-06-19 14:55:58.985889 +0900 KST : 1년 전
    date = now.AddDate(0-10)
    fmt.Println(date) // 2020-05-19 14:55:58.985889 +0900 KST : 1달 전
    date = now.AddDate(00-1)
    fmt.Println(date) // 2020-06-18 14:55:58.985889 +0900 KST : 1일 전
 
    // 년, 월, 일 구하기
    var from = fmt.Sprintf("%d-%d-%d 00:00:00", date.Year(), date.Month(), date.Day())
    var to = fmt.Sprintf("%d-%d-%d 23:59:59", date.Year(), date.Month(), date.Day())
 
    fmt.Println(from) // 2020-6-18 00:00:00
    fmt.Println(to)   // 2020-6-18 23:59:59
 
    return
}

AddDate() 함수를 통해 시간을 가(감)산할 수 있다. 시간 정보를 따로따로 구분해서 가져오려면 Year(), Hour()등의 함수를 사용하면 된다.