时间戳改成string可读型

This commit is contained in:
zhangkun9038@dingtalk.com 2025-03-07 22:34:49 +08:00
parent 092009080b
commit 64fe4a18b0

View File

@ -9,6 +9,15 @@ import (
"time" "time"
) )
// formatTimestamp 将毫秒时间戳字符串转换为可读格式
func formatTimestamp(ts string) (string, error) {
millis, err := strconv.ParseInt(ts, 10, 64)
if err != nil {
return "", err
}
return time.UnixMilli(millis).Format("2006-01-02 15:04:05"), nil
}
// CandleList 封装Candle数组并提供序列化方法 // CandleList 封装Candle数组并提供序列化方法
type CandleList struct { type CandleList struct {
Candles []*Candle Candles []*Candle
@ -46,13 +55,35 @@ func MakeCandleList(instId string, period string, startTime time.Time, endTime t
// ToJson 将Candle数组序列化为JSON字符串 // ToJson 将Candle数组序列化为JSON字符串
func (cl *CandleList) ToJson() (string, error) { func (cl *CandleList) ToJson() (string, error) {
// 调试信息 // 创建临时结构体用于格式化时间戳
fmt.Printf("Number of candles: %d\n", len(cl.Candles)) type FormattedCandle struct {
// for i, candle := range cl.Candles { Timestamp string `json:"timestamp"`
// fmt.Printf("Writing candle %d: %+v\n", i, candle) Open string `json:"open"`
// } High string `json:"high"`
// Low string `json:"low"`
jsonData, err := json.Marshal(cl.Candles) Close string `json:"close"`
Volume string `json:"volume"`
VolumeCcy string `json:"volumeCcy"`
}
var formattedCandles []FormattedCandle
for _, candle := range cl.Candles {
formattedTs, err := formatTimestamp(candle.Timestamp)
if err != nil {
return "", err
}
formattedCandles = append(formattedCandles, FormattedCandle{
Timestamp: formattedTs,
Open: candle.Open,
High: candle.High,
Low: candle.Low,
Close: candle.Close,
Volume: candle.Volume,
VolumeCcy: candle.VolumeCcy,
})
}
jsonData, err := json.Marshal(formattedCandles)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -74,9 +105,12 @@ func (cl *CandleList) ToCsv() (string, error) {
fmt.Printf("Number of candles: %d\n", len(cl.Candles)) fmt.Printf("Number of candles: %d\n", len(cl.Candles))
for _, candle := range cl.Candles { for _, candle := range cl.Candles {
// fmt.Printf("Debug: Writing candle %d with Timestamp: %s\n", i, candle.Timestamp) formattedTs, err := formatTimestamp(candle.Timestamp)
if err != nil {
return "", err
}
record := []string{ record := []string{
candle.Timestamp, formattedTs,
candle.Open, candle.Open,
candle.High, candle.High,
candle.Low, candle.Low,
@ -87,8 +121,6 @@ func (cl *CandleList) ToCsv() (string, error) {
if err := writer.Write(record); err != nil { if err := writer.Write(record); err != nil {
return "", err return "", err
} }
// 调试信息
// fmt.Printf("Writing candle %d: %+v\n", i, candle)
} }
writer.Flush() writer.Flush()