将Golang时间格式化为特定时间戳

将Golang时间格式化为特定时间戳,go,Go,我正在尝试格式化时间。时间类型为昨天的特定时间,特别是23:59:59 我有一个将当前时间转换为IST的函数 func getTimeInIST() time.Time { loc, _ := time.LoadLocation("Asia/Kolkata") now := time.Now().In(loc) return now } 另一个转换为前一天的函数 func GetYesterdaysDateFromTime() time.Time{ return

我正在尝试格式化时间。时间类型为昨天的特定时间,特别是23:59:59

我有一个将当前时间转换为IST的函数

func getTimeInIST() time.Time {
    loc, _ := time.LoadLocation("Asia/Kolkata")
    now := time.Now().In(loc)
    return now
}
另一个转换为前一天的函数

func GetYesterdaysDateFromTime() time.Time{
    return getTimeInIST().AddDate(0, 0, -1)
}
我想将上面的格式设置为日期为2009-06-12 23:59:59的时间戳 我是为了这个

yesterday := common.GetYesterdaysDateFromTime()
yesterday.Format("2006-01-02 23:59:59")
但我得到这个2019-06-1118:589:589


我做错了什么?

你的时间格式错了。Go中的参考时间为

这张照片是:

2019-06-11 20:37:04


在格式中使用正确的hh:mm:ss值,就像处理yyyy-mm-dd一样。格式不是这样工作的。格式以特定格式表示时间;它们不会改变任何有关时间值的内容。如果要显示时间23:59:59,则需要在格式化之前设置时间。常见的定义是什么?
func getTimeInIST() time.Time {
    loc, _ := time.LoadLocation("Asia/Kolkata")
    now := time.Now().In(loc)
    return now
}
func GetYesterdaysDateFromTime() time.Time {
    return getTimeInIST().AddDate(0, 0, -1)
}

func main() {
    yesterday := GetYesterdaysDateFromTime()
    print(yesterday.Format("2006-01-02 15:04:05"))
}