亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用未知布局將字符串解析為時間

使用未知布局將字符串解析為時間

Go
慕雪6442864 2023-01-03 17:20:52
我有一個csv文件,想閱讀:標頭名稱字段類型所以,我寫了以下內容:package mainimport (    "encoding/csv"    "fmt"    "os"    "log"    "reflect"    "strconv")func main() {    filePath := "./file.csv"    headerNames := make(map[int]string)    headerTypes := make(map[int]string)    // Load a csv file.    f, _ := os.Open(filePath)    // Create a new reader.    r := csv.NewReader(f)    // Read first row only    header, err := r.Read()    checkError("Some other error occurred", err)    // Add mapping: Column/property name --> record index    for i, v := range header {        headerNames[i] = v    }    // Read second row    record, err := r.Read()    checkError("Some other error occurred", err)    // Check record fields types    for i, v := range record {        var value interface{}        if value, err = strconv.Atoi(v); err != nil {            if value, err = strconv.ParseFloat(v, 64); err != nil {                if value, err = strconv.ParseBool(v); err != nil {                    if value, err = strconv.ParseBool(v); err != nil { // <== How to do this with unknown layout                        // Value is a string                        headerTypes[i] = "string"                        value = v                        fmt.Println(reflect.TypeOf(value), reflect.ValueOf(value))                    } else {                        // Value is a timestamp                        headerTypes[i] = "time"                        fmt.Println(reflect.TypeOf(value), reflect.ValueOf(value))                    }                } 
查看完整描述

1 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

我找到了使用這個包的解決方案:github.com/araddon/dateparse

// Normal parse.  Equivalent Timezone rules as time.Parse()

t, err := dateparse.ParseAny("3/1/2014")


// Parse Strict, error on ambigous mm/dd vs dd/mm dates

t, err := dateparse.ParseStrict("3/1/2014")

> returns error 


// Return a string that represents the layout to parse the given date-time.

layout, err := dateparse.ParseFormat("May 8, 2009 5:57:51 PM")

> "Jan 2, 2006 3:04:05 PM"


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號