2017-01-27 1 views

답변

5

수 없습니다. Go 표준 라이브러리에는 현지화 된 월, 일 및 지명이 들어 있지 않습니다. 이름은 time 패키지에 저장되어 있습니다.

는 예를 들어, Month.String()에 의해 반환되는 달의 이름이 안 export time.month 전역 변수에 저장됩니다

var months = [...]string{ 
    "January", 
    "February", 
    "March", 
    "April", 
    "May", 
    "June", 
    "July", 
    "August", 
    "September", 
    "October", 
    "November", 
    "December", 
} 

func (m Month) String() string { return months[m-1] } 

마찬가지로, 평일의 이름은 안 export 변수 time.days에 저장, Weekday.String()에서 왔습니다.

귀하의 요구를 지원하는 타사 라이브러리가있을 수 있습니다. https://github.com/variadico/lctime

은 또한 일반, 다국어 시간을 제공하면서 서식 참고 : https://github.com/mattbaird/go-i18n-formats 아래 이고르 Chubin 공유로

이 제 3 자 lib에 훨씬 더 완료 : 여기에 일부 도움이 될 수있는 불완전한 하나입니다 패키지가 쉬운 작업이 아니므로 실제로 패키지가 필요하면 time 패키지를 프로젝트에 복사하고 이름을 필요한 언어로 번역하면됩니다.

적은 수의 언어와 적은 수의 레이아웃을 지원하므로 형식을 쉽게 만들 수 있습니다.

는 예를 들어, 아래 코드는 당신이 당신의 질문에 사용 된 레이아웃을 사용하여, 헝가리어 주어진 time.Time 값을 포맷 :

func Format(t time.Time) string { 
    return fmt.Sprintf("%s %02d. %s", 
     days[t.Weekday()][:3], t.Day(), months[t.Month()-1][:3], 
    ) 
} 

var days = [...]string{ 
    "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"} 

var months = [...]string{ 
    "Január", "Február", "Március", "Április", "Május", "Június", 
    "Július", "Augusztus", "Szeptember", "Október", "November", "December", 
} 

테스트를 그 다음 Go Playground

fmt.Println(Format(time.Now())) 

출력 :

Ked 10. Nov 

내 로컬 컴퓨터의 출력 :

Pén 27. Jan 
+0

나는 그렇게 나쁘다고 생각하지 않습니다. 이동용 i18n 패키지가 없습니까? –

+0

@IgorChubin 불행히도 아직 (내가 아는) 것은 없습니다. 그러나 특정 언어와 레이아웃을 지원하기에 충분합니다. 답변에 추가되었습니다. – icza

+1

이 라이브러리를 찾았습니다 : https://github.com/variadico/lctime 그리고 필요한 기능을 갖고있는 것 같습니다. icza 고마워! –

관련 문제