Вам, вероятно, следует удалить вызов функции форматирования из текущего времени, чтобы получить фактическую структуру времени, а не строковое представление, и исправить макет за прошедшее время
package main
import (
"fmt"
"time"
)
func main() {
//fetching current time
currentTime := time.Now()
loc := currentTime.Location()
//past time comes in as string
pasttimestr := "2018-10-10 23:00"
layout := "2006-01-02 15:04"
//converting string to date
pasttime, err := time.ParseInLocation(layout, pasttimestr, loc)
if err != nil {
fmt.Println(err)
}
fmt.Println("Past Time: ", pasttime)
fmt.Println("Current Time: ", currentTime)
//differnce between pastdate and current date
diff := currentTime.Sub(pasttime)
fmt.Printf("time difference is %v or %v in minutes\n", diff, diff.Minutes())
}
Дает мне
Past Time: 2018-10-10 23:00:00 -0400 EDT
Current Time: 2018-10-10 14:31:34.865259 -0400 EDT m=+0.000351797
time difference is -8h28m25.134741s or -508.41891235 in minutes