Подтвердить что ты не робот

Как получить разницу часов между двумя датами

Я работаю в первый раз на Go, в этом случае у меня есть строка в формате UTC, я хотел бы знать, как я могу получить разницу между часами между моей датой и временем. Это моя текущая строка

v := "2014-05-03 20:57 UTC"
4b9b3361

Ответ 1

Используйте time.Parse и time.Since:

package main

import (
    "fmt"
    "time"
)

const (
    // See http://golang.org/pkg/time/#Parse
    timeFormat = "2006-01-02 15:04 MST"
)

func main() {
    v := "2014-05-03 20:57 UTC"
    then, err := time.Parse(timeFormat, v)
    if err != nil {
        fmt.Println(err)
        return
    }
    duration := time.Since(then)
    fmt.Println(duration.Hours())
}

Ответ 2

Посмотрите пакет времени.

package main

import "fmt"
import "time"

func main() {
    a, err := time.Parse("2006-01-02 15:04 MST", "2014-05-03 20:57 UTC")
    if err != nil {
        // ...
        return
    }

    delta := time.Now().Sub(a)
    fmt.Println(delta.Hours())
}

Ответ 3

В случае, если кому-то нужна разница между двумя датами. В формате year, days, hours. пример кода. Макет может быть любым. Я выбрал RFC3339.