如何解释这些时间戳

时间:2019-07-17 17:22:23

标签: go google-cloud-platform timestamp google-cloud-datastore datetime-format

我在Google数据存储区 TS 中具有不同的值。 类型列为string。这是一堆价值观

1994-11-04T13:15:30Z    
1994-11-06T13:15:30Z    
1994-11-05T08:15:30-05:00   
1994-11-07T08:15:30-05:00

现在这些值采用2种不同的格式。带有Z的那个代表UTC时区的时间戳。但是,具有偏移量的那个代表本地时区(我在这里正确吗?)

现在的问题是,我们在项目中进行的查询确实基于该列进行排序,即

query := datastore.NewQuery(myEntityType).
    Namespace(myNameSpace.String()).
    Order("-TS")
rows := make([]domain.datastore.rows, 0)
_, err := r.client.GetAll(ctx, query, rows)

那里clientcloud.google.com/go/datastore对象。

我无法在本地进行测试,但在产品中,最终用户发现这些东西乱七八糟。但是,如果我转到数据存储区UI,并通过单击TS列对值进行排序,则它们的顺序就很好。令我感到困惑的是,如果错误是在排序上,那么错误也不应该出现在UI上吗?

因此,我不确定如何解决此错误。我应该将Google Datastore列转换为Timestamp吗(可以吗?)。还是应该修复代码以保持一致?

0 个答案:

没有答案