解析ticker.C格式时间字符串并获取Time对象格式方法
解析ticker.C格式字符串为Time对象 & 格式信息相关问题
一、解析字符串并丢弃m=+xxx部分
ticker.C输出的字符串末尾m=+1.002332450是进程启动后的相对时间偏移,Time对象无需保留这部分,你可以先截断字符串再解析:
- 清理输入字符串:用
strings.SplitN按" m="分割,取前半段有效内容 - 用Go标准的参考时间布局匹配格式,完成解析
示例代码:
import ( "strings" "time" ) func parseTickerTime(tickerStr string) (time.Time, error) { // 移除末尾的相对时间部分 cleaned := strings.SplitN(tickerStr, " m=", 2)[0] // 匹配ticker.C输出的时间格式 layout := "2006-01-02 15:04:05.999999999 -0700 MST" return time.Parse(layout, cleaned) }
二、Time对象能否获取格式字符串?
不行。time.Time类型仅存储时间点的核心信息(纳秒级时间戳+时区),不会保留任何格式化相关的元数据——它只代表「某个具体时间」,不记得自己是从什么格式的字符串解析而来的。
如果需要复用格式,你得自己单独保存对应的layout字符串,比如把Time对象和格式字符串封装到自定义结构体中:
type FormattedTime struct { Time time.Time Layout string } // 自定义方法获取格式 func (ft FormattedTime) GetFormat() string { return ft.Layout }
内容的提问来源于stack exchange,提问作者atx
相关产品推荐
相关产品推荐

