2014-04-20 9 views
1

在兩個日期之間獲取持續時間或基於當前基本獲取未來日期的慣用方式是什麼?現在我正在使用下面的代碼來實現這一點。創造持續時間或未來日期的習慣性方式

yearSpan := time.Date(time.Now().Year()-1, time.Now().Month(), 
time.Now().Day(), time.Now().Hour(), time.Now().Minute(), time.Now().Second(), 
time.Now().Nanosecond(), time.UTC) 

yearDuration := time.Now().Sub(yearSpan) 

header.Add("Expires", time.Now().Add(futureDate).String()) 

我在書本和網站上看得很到處,但是我找不到任何慣用的方法來創建持續時間。有關如何以更好的方式重構上述代碼的任何想法?

感謝

回答

1

time.Duration定義爲type Duration int64,所以basicly你只是做基本的數學運算得到你想要的時間。

例如(Play with it):

package main 

import (
    "fmt" 
    "time" 
) 

const avgYear = time.Hour * 24 * 365 

func main() { 
    fmt.Println("Hello, playground") 
    fmt.Println("Now", time.Now().String()) 
    fmt.Println("Last Year", time.Now().Add(-avgYear).String()) 
    fmt.Println("Next Year", time.Now().Add(avgYear).String()) 
} 
+1

感謝這麼多的整潔回答:) – ymg

+1

由於某種原因,我完全忘記了我曾經用'time.Sleep(time.Minute * 1)'*嘆息* – ymg

+0

很高興我能幫到你。 – OneOfOne

相關問題