redis 存时间戳 最方便
如果要存时间的话:
hset的时候有两种:
一、time类型的.String()
HSet(key, "replyAt", time.Now().String())
2019-10-14 10:28:34.184535257 +0800 CST m=+152806.843317207
二、time类型的Marshal先转json字符串,再Unmarshal转相应的数据结构
func (r *RedisClient) HashMapSet(key string, v interface{}) error {
b, err := json.Marshal(v)
if err != nil {
return err
}
var f interface{}
if err := json.Unmarshal(b, &f); err != nil {
return err
}
data := f.(map[string]interface{})
return r.HMSet(key, data).Err()
}
createdAt -> 2019-10-14T11:15:27.2713176+08:00
time在Redis里是string类型
只显示的话可以直接读取这个string类型并返回,如果有的地方用到这个string时间的time类型的话,才需要转换
2019-09-27T08:32:00+08:00
2006-01-02T15:04:05Z07:00
2019-10-09 07:27:56.37285012 +0000 UTC
2006-01-02 15:04:05.99999999 -0700 MST
2019-09-09T12:34:32.5271158+08:00
2019-09-07T11:05:38.294122393Z
2006-01-02T15:04:05Z07:00
2006-01-02T15:04:05.0000000Z07:00
2006-01-02T15:04:05Z07:00 最通用
const (
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)