我在golang中有一个日期,如2014-10-22 00:00,我想在330分钟内扣除,以下是我使用的代码,但是,它不起作用,我尝试减少与持续时间为负,但是时间不会减少。最初,"开始日期"是2014-12-29 00 :: 00,扣除后仍然是2014-12-29 00:00,这意味着扣除无效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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) } |
函数
1 | st.Add(neg_india_offset) |
到
1 | st = st.Add(neg_india_offset) |
如果要获取具有特定时区的日期,请查看
1 2 3 4 | loc, err := time.LoadLocation("India/Delhi") // ... st, err = time.ParseInLocation(layoutStart, startDate, loc) |