Go에서 날짜와 시간 비교
날짜와 시간을 기준으로 데이터를 정렬할 때는 정확한 비교가 필수입니다. Go는 시간 패키지를 통해 날짜 및 시간 조작을 위한 강력한 옵션을 제공합니다.
시간 패키지는 즉각적인 비교를 위한 여러 가지 방법(전, 후, 같음)을 제공합니다. 두 시점을 비교하여 시간적 관계를 설정할 수 있습니다. 또한 Sub 메서드는 두 인스턴스 사이의 Duration을 계산하는 반면 Add 메서드를 사용하면 Duration을 Time에 추가하여 새로운 Time을 생성할 수 있습니다.
Time Instant Comparisons
예를 들어 다음 예를 고려해 보세요.
package main import ( "fmt" "time" ) func main() { start, _ := time.Parse(time.RFC822, "01 Jan 15 10:00 UTC") end, _ := time.Parse(time.RFC822, "01 Jan 16 10:00 UTC") in, _ := time.Parse(time.RFC822, "01 Jan 15 20:00 UTC") out, _ := time.Parse(time.RFC822, "01 Jan 17 10:00 UTC") if in.Before(end) && in.After(start) { fmt.Println(in, "is between", start, "and", end, ".") } if !in.Before(end) || !in.After(start) { fmt.Println(out, "is not between", start, "and", end, ".") } }
이 예에서는 start 및 start라는 두 시간 순간을 구문 분석합니다. end는 시간 범위를 나타냅니다. 그런 다음 두 개의 추가 시간 순간(in 및 out)을 구문 분석하여 지정된 범위 내에 속하는지 확인합니다. Before와 After 방법을 사용하여 순간을 비교함으로써 주어진 시간이 원하는 시간 간격 내에 있는지 확인할 수 있습니다.
시간 범위 검증
날짜가 다음과 같은 경우 질문에서 언급한 대로 범위가 며칠에 걸쳐 지속되는 경우 추가 확인이 필요할 수 있습니다. 다음은 이러한 시나리오를 처리하는 방법을 보여주는 예입니다.
package main import ( "fmt" "time" ) func inTimeSpan(start, end, check time.Time) bool { if start.After(end) { return check.After(start) || check.Before(end) } return check.After(start) && check.Before(end) } func main() { start, _ := time.Parse(time.RFC822, "01 Jan 15 22:00 UTC") end, _ := time.Parse(time.RFC822, "01 Jan 16 04:59 UTC") in, _ := time.Parse(time.RFC822, "01 Jan 16 02:00 UTC") out, _ := time.Parse(time.RFC822, "01 Jan 17 10:00 UTC") if inTimeSpan(start, end, in) { fmt.Println(in, "is within the time range from", start, "to", end, ".") } if !inTimeSpan(start, end, out) { fmt.Println(out, "is not within the time range from", start, "to", end, ".") } }
이 예에서 inTimeSpan 함수는 시작 시간이 종료 시간보다 길 수 있다는 가능성을 고려하여 날짜에 걸쳐 있는 시간 범위를 처리합니다. 그에 따라 비교를 조정하고 확인 시간이 지정된 시간 범위 내에 속하는지 정확하게 결정합니다.
날짜 및 시간 비교를 위한 시간 패키지와 해당 방법을 활용하면 시간 및 시간을 기준으로 데이터를 효과적으로 정렬하고 필터링할 수 있습니다. Go의 날짜 간격.
위 내용은 Go에서 날짜 및 시간 범위를 효율적으로 비교하고 검증하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!