iT邦幫忙

0

Go 字串時間,拿掉時區-01:00或轉換去掉時區問題

A 資料庫取到的日期是:2020-10-10T02:00:08-01:00
B  資料庫吃的格式是:2020-10-10 02:00:08
想從 A 取出寫到 B,試了許久找不到用 Time 的轉換方法
目前用最笨方式把 T 換成空格 -01:00 去掉
但如果碰到A資料庫寫不同時區,會抓不到 -01:00 無法替換
想請問如何寫才正確,感謝前輩

Nathan Lu iT邦新手 5 級 ‧ 2020-10-11 23:21:27 檢舉
https://golang.org/src/time/format.go

https://play.golang.org/p/I5kAQ0wl8uf
不知道這樣是不是您要的效果@@"
0
Nathan Lu
iT邦新手 5 級 ‧ 2020-10-11 23:24:34
最佳解答
vicentli iT邦新手 3 級 ‧ 2020-10-12 22:43:18 檢舉

對,就是這樣,感謝

1
一級屠豬士
iT邦大師 1 級 ‧ 2020-10-12 00:37:19
看更多先前的回應...收起先前的回應...
Nathan Lu iT邦新手 5 級 ‧ 2020-10-12 09:49:25 檢舉

XD 原來是想轉時區, 感謝大大分享

Nathan Lu iT邦新手 5 級 ‧ 2020-10-12 09:53:55 檢舉

那好像該先拿到後面的offset, 來讀取對應時區的timezone string
再來parse XD
感謝大大(終於看懂題目要的是什麼了)

建議可以翻翻這本書.
https://www.packtpub.com/product/go-standard-library-cookbook/9781788475273

他的sample code, 看看code 也是不錯
https://github.com/PacktPublishing/Go-Standard-Library-Cookbook

裡面有個 timezones.go 可以參考一下.

vicentli iT邦新手 3 級 ‧ 2020-10-12 22:44:30 檢舉

哇,好多範例,挖到寶!感謝~~~

2
海綿寶寶
iT邦大神 1 級 ‧ 2020-10-12 09:47:25
package main

import "fmt"
import "time"

func main() {
    layout := "2006-01-02T03:04:05-07:00"
    str := "2020-10-10T02:00:08-01:00"
    
    fmt.Println(str)
    
    t, err := time.Parse(layout, str)
    
    if err != nil {
        fmt.Println(err)
    } else {
        result := t.Format("2006-01-02 03:04:05")
        fmt.Println(result);
    }
}

另外,點這裡是我這次鐵人賽唯一的一篇文章,喜歡的話左上角點 Like

vicentli iT邦新手 3 級 ‧ 2020-10-12 22:45:13 檢舉

感謝前輩,這是我要的結果

我要發表回答

立即登入回答