我有以下代碼,它將字符串作為輸入,并轉(zhuǎn)換為 UNIX 時間戳。我想在 golang 中做同樣的事情,但我無法識別在 Go 中將提供等效于 DateTimeOffset 結(jié)構(gòu)的結(jié)構(gòu)或函數(shù)。class Program{ static void Main(string[] args) { var date = GetUtcTimestampFromAttribute(); Console.WriteLine(date); if (date != null) { Console.WriteLine(ToUnixTimeStamp(date.Value)); } Console.ReadKey(); } public static DateTimeOffset? GetUtcTimestampFromAttribute() { var ticks = long.Parse("7036640000000"); Console.WriteLine(ticks); return GetUtcTimestampFromTicks(ticks); } public static DateTimeOffset? GetUtcTimestampFromTicks(long ticks) { Console.WriteLine(new DateTimeOffset(ticks, TimeSpan.Zero)); return ticks != 0 ? new DateTimeOffset(ticks, TimeSpan.Zero) : (DateTimeOffset?)null; } public static long ToUnixTimeStamp(DateTimeOffset timeStamp) { var epoch = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); return Convert.ToInt64((timeStamp - epoch).TotalSeconds); }}例如:輸入:635804753769100000輸出:1444878577UTC 對應(yīng)時間:10/15/2015 3:09:36 AM +00:00有人可以幫助我解決方法以獲得上述結(jié)果。
1 回答

皈依舞
TA貢獻1851條經(jīng)驗 獲得超3個贊
我相信這個time包有你需要的一切,它是 IMO 最好的時間庫,我用任何語言工作過。例子:
package main
import(
"fmt"
"time"
)
func main(){
// this is how you parse a unix timestamp
t := time.Unix(1444902545, 0)
// get the UTC time
fmt.Println("The time converted to UTC:", t.UTC())
// convert it to any zone: FixedZone can take a utc offset and zone name
fmt.Println(t.In(time.FixedZone("IST", 7200)))
}
編輯將時間對象轉(zhuǎn)換回 unix 時間戳很簡單:
t.Unix()
或者
t.UnixNano()
- 1 回答
- 0 關(guān)注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消