>  기사  >  백엔드 개발  >  golang viper 구성이 오류 없이 로드될 수 있도록 기간을 일 단위로 언급하는 방법은 무엇입니까?

golang viper 구성이 오류 없이 로드될 수 있도록 기간을 일 단위로 언급하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2024-02-12 16:30:07756검색

如何提及以天为单位的持续时间,以便可以毫无错误地加载 golang viper 配置?

질문 내용

.env 파일에는 다음과 같은 두 가지 구성이 있습니다

으아아아

golang에서 구성을 로드하는 데 사용되는 구조는 다음과 같습니다

으아아아

이제 구성을 로드하려고 하면 다음 오류가 발생합니다

으아아아

이것은 아마도 max_token_expiry_days=30d 行,因为它无法识别 d 标签。但是 access_token_duration=30m 中的 m 标签与 time 运行良好。golang 中的 duration잘파싱할 수 있는 능력에 문제가 있다는 의미일 것입니다.

time 패키지 소스코드를 보면 다음과 같은 구조가 보입니다

으아아아

구성에서 일수를 표시할 수 있는 방법이 있나요?

해결 방법

이는 시간 문자열에서 호출된 ParseDurationd단위 접미사

를 지원하지 않기 때문입니다.

유효한 시간 단위는 "ns", "us"(또는 "μs"), "ms", "s", "m", "h"입니다.

모호함을 해결하려면 30d 的小时数,即 720h를 사용하는 것이 좋습니다.

언어 디자이너가 select를 사용하기로 결정한 이유를 이해하려면 golang/go의 질문/설명도 참조하세요. time.ParseDuration()이 날짜를 지원하지 않는 이유는 무엇입니까? #17767

위 내용은 golang viper 구성이 오류 없이 로드될 수 있도록 기간을 일 단위로 언급하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제