나는 문자열로 이런 식으로 날짜를 변환 :로케일을 사용하여 이동하여 날짜를 문자열로 변환하려면 어떻게해야합니까?
d.Format("Mon 02. Jan")
을하고 난 로케일을 전환하고 다른 언어로 문자열을 얻을 수있는 방법
Fri 27. Jan
같은 것을 얻을?
나는 문자열로 이런 식으로 날짜를 변환 :로케일을 사용하여 이동하여 날짜를 문자열로 변환하려면 어떻게해야합니까?
d.Format("Mon 02. Jan")
을하고 난 로케일을 전환하고 다른 언어로 문자열을 얻을 수있는 방법
Fri 27. Jan
같은 것을 얻을?
수 없습니다. 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
나는 그렇게 나쁘다고 생각하지 않습니다. 이동용 i18n 패키지가 없습니까? –
@IgorChubin 불행히도 아직 (내가 아는) 것은 없습니다. 그러나 특정 언어와 레이아웃을 지원하기에 충분합니다. 답변에 추가되었습니다. – icza
이 라이브러리를 찾았습니다 : https://github.com/variadico/lctime 그리고 필요한 기능을 갖고있는 것 같습니다. icza 고마워! –