时间戳改成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"
)
// 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数组并提供序列化方法
type CandleList struct {
Candles []*Candle
@ -46,13 +55,35 @@ func MakeCandleList(instId string, period string, startTime time.Time, endTime t
// ToJson 将Candle数组序列化为JSON字符串
func (cl *CandleList) ToJson() (string, error) {
// 调试信息
fmt.Printf("Number of candles: %d\n", len(cl.Candles))
// for i, candle := range cl.Candles {
// fmt.Printf("Writing candle %d: %+v\n", i, candle)
// }
//
jsonData, err := json.Marshal(cl.Candles)
// 创建临时结构体用于格式化时间戳
type FormattedCandle struct {
Timestamp string `json:"timestamp"`
Open string `json:"open"`
High string `json:"high"`
Low string `json:"low"`
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 {
return "", err
}
@ -74,9 +105,12 @@ func (cl *CandleList) ToCsv() (string, error) {
fmt.Printf("Number of candles: %d\n", len(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{
candle.Timestamp,
formattedTs,
candle.Open,
candle.High,
candle.Low,
@ -87,8 +121,6 @@ func (cl *CandleList) ToCsv() (string, error) {
if err := writer.Write(record); err != nil {
return "", err
}
// 调试信息
// fmt.Printf("Writing candle %d: %+v\n", i, candle)
}
writer.Flush()