php小编西瓜今天将为大家介绍如何使用日期时间和删除经过的时间解析股票行情。在股票市场中,即时获取和解析股票行情是非常重要的一项技能。通过使用日期时间函数,我们可以获取当前的日期和时间,然后通过删除经过的时间来计算出股票行情的更新时间。这样一来,我们就可以实时跟踪股票行情的变化,并做出相应的决策。接下来,让我们一起来了解具体的操作步骤吧!
问题内容
我想从 ticker.C
格式的 string
(通过网络)获取日期时间并将其解析为 Time
对象。 ticker.C
看起来像 2023-01-03 17:24:13.986722973 +0100 CET m=+1.002332450
。它可能必须删除 m=+1.002332450
经过的时间,因为我没有看到将其保留在 Time
对象中的方法。
此外,有没有办法从 Time 对象中获取格式字符串?类似于 mytime.GetFormat()
解决方法
时间的 stringer 格式记录在此处,https://pkg。 go.dev/[电子邮件受保护]#time.string:
字符串返回使用格式字符串格式化的时间
"2006-01-02 15:04:05.999999999 -0700 mst"
如果时间具有单调时钟读数,则返回的字符串包括最后一个字段“m=±
返回的字符串用于调试;为了获得稳定的序列化表示,请使用 t.marshaltext、t.marshalbinary 或 t.format 以及显式格式字符串。
这表明您不应尝试使用该值,而应依赖于正确编组(或格式化)的字符串。
未提及/建议,time.marshaljson 是一个选项:
marshaljson 实现 json.marshaler 接口。时间是 rfc 3339 格式的带引号的字符串,如果存在,则添加亚秒精度。
发送方和接收方无需执行任何特殊工作即可将 time.time 值编码为 json,然后再次解码:
type wiretick struct {
tick time.time `json:"tick"`
}
这是一个使用该结构对线路上的股票代码进行编码和解码的小示例,https: //go.dev/play/p/fx73q8-kvfa,它产生如下输出:
sent json-encoded tick on wire: {"tick":"2009-11-10t23:00:01z"}
received tick from wire: {2009-11-10 23:00:01 +0000 utc}
sent json-encoded tick on wire: {"tick":"2009-11-10t23:00:02z"}
received tick from wire: {2009-11-10 23:00:02 +0000 utc}
...
您可以修改通过线路发送的值,或者请其他人修改它以使其正确吗?
如果没有,这个应该可以:
const stringerlayout = "2006-01-02 15:04:05.999999999 -0700 mst"
timestr := "2009-11-10 23:00:10 +0000 utc m=+10.000000001"
tickstr := timestr[:strings.index(timestr, "m=")-1]
tick, _ := time.parse(stringerlayout, tickstr)
fmt.printf("received from wire: \t %q\n", timestr)
fmt.printf("chopped off monotonic: \t %q\n", tickstr)
fmt.printf("tick is: \t\t %v\n", tick)
Received from wire: "2009-11-10 23:00:10 +0000 UTC m=+10.000000001"
Chopped off monotonic: "2009-11-10 23:00:10 +0000 UTC"
Tick is: 2009-11-10 23:00:10 +0000 UTC
以上就是使用日期时间和删除经过的时间解析股票行情的详细内容,更多请关注编程网其它相关文章!