2017-12-26 8 views
-1

아래 코드가 있습니다. 요청에서 문자열 형식으로 날짜 값을 가지며 시간 형식으로 변환하려고합니다. 하지만 형식에 문제가 있습니다.날짜 변환

type LeanData struct { 
    Start_Date time.Time 
} 
const dateLayout = "01-02-2006" 

startdate := request.FormValue("startdate") 
if len(strings.TrimSpace(startdate)) > 0 { 
    sdate, err := time.Parse(dateLayout, startdate) 
} 
fmt.Println("startdate", startdate) 
fmt.Println("sdate", sdate) 

다음과 같은 출력이 있습니다.

startdate 02-03-2016 
sdate 2016-02-03 00:00:00 +0000 UTC 

여기 시작일이 time 유형이기 때문에 변환을 수행하고 있습니다. 시간. 2016-02-03으로 변환하고 싶지만 2016-02-03 00:00:00 +0000 UTC로 변환하지 않습니다. 또한 request의 값이 nil/empty 인 경우 빈 값을 시작 날짜에 할당하는 방법.

다른 사람이이를 수행하는 방법을 알려 줄 수 있습니까?

+0

변환이 잘된 것처럼 보입니다. 시간없이 날짜 부분 만 원한다면 ['Time.Format()'] (https://golang.org/pkg/time/#Time.Format) 또는 ['Time.Date()'] (https://golang.org/pkg/time/#Time.Date). – Adrian

답변

3

time.Parse은 날짜 및 시간 정보가 포함 된 time.Time 유형의 객체를 반환합니다. 날짜 정보 만 포함하는 이동 유형은 없습니다. 를 포맷 할 때 당신은 그러나 날짜의 시간 부분을 무시할 수 있습니다, 예를 들면 :

fmt.Println("sdate", sdate.Format("2006-01-02")) 

인쇄됩니다

var sdate time.Time 
:

sdate 2016-02-03 

단지로 선언, 빈 시간을 초기화하려면