Golang扣除日期的特定时间

I have a date in golang like 2014-10-22 00:00 , and I want to deduct in 330 minutes , the following is the code I used, however, it does not works, I tried to reduce the time with negative duration, however , the time is not reduced. Originally, "Start date" is 2014-12-29 00::00, after deduction, it is still 2014-12-29 00:00, that means the deduction is not work.

    layoutStart := "2006-01-02 15:04"
    layoutEnd := "2006-01-02 15:04"

    var st time.Time
    var et time.Time

    var err error
    var err2 error

    var neg_india_offset = time.Duration(-330) * time.Minute
    //var day_offset time.Duration = 1439 * time.Minute

    if st, err = time.Parse(layoutStart, startDate); err == nil {
        log.Printf("Start Time decoded: %v", st)
        st.Add(neg_india_offset)
        log.Printf("Start Time deduct: %v", st)
    } else {
        log.Printf("Failed to decode start time: %v", err)
    }

    if et, err2 = time.Parse(layoutEnd, endDate); err2 == nil {
        log.Printf("End Time decoded: %v", et)
        st.Add(neg_india_offset)
        log.Printf("End Time added day: %v", et)
    } else {
        log.Printf("Failed to decode end time: %v", err2)
    }

The function time.Time.Add() does not overwrite its argument. It returns the new time. Change the line

st.Add(neg_india_offset)

to

st = st.Add(neg_india_offset)

If you want to get a date with a specific time-zone, have a look at the time.ParseInLocation() function. It can parse a date for a specified time zone; use it like this:

loc, err := time.LoadLocation("India/Delhi")
// ...

st, err = time.ParseInLocation(layoutStart, startDate, loc)