1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-09 17:44:59 +09:00

GO-4220 Date id is in utc

This commit is contained in:
kirillston 2024-11-13 16:43:37 +01:00
parent b75d5cb64e
commit d7e016d50d
No known key found for this signature in database
GPG key ID: 88218A7F1109754B
5 changed files with 28 additions and 12 deletions

View file

@ -13,13 +13,14 @@ const (
dateNameLayout = "02 Jan 2006"
)
// TimeToDateId returns date object id. Its format is _date_YYYY-MM-DD-hh-mm-ss in UTC time zone
func TimeToDateId(t time.Time) string {
return addr.DatePrefix + t.Format(dateIdLayout)
return addr.DatePrefix + t.UTC().Format(dateIdLayout)
}
// TimeToShortDateId should not be used to generate Date object id. Use TimeToDateId instead
func TimeToShortDateId(t time.Time) string {
return addr.DatePrefix + t.Format(shortDateIdLayout)
return addr.DatePrefix + t.UTC().Format(shortDateIdLayout)
}
func ParseDateId(id string) (time.Time, error) {
@ -30,8 +31,11 @@ func ParseDateId(id string) (time.Time, error) {
return time.Parse(shortDateIdLayout, strings.TrimPrefix(id, addr.DatePrefix))
}
func TimeToDateName(t time.Time) string {
return t.Format(dateNameLayout)
func TimeToDateName(t time.Time, loc *time.Location) string {
if loc != nil {
return t.In(loc).Format(dateNameLayout)
}
return t.Local().Format(dateNameLayout)
}
func DateNameToId(name string) (string, error) {

View file

@ -1,6 +1,7 @@
package dateutil
import (
"fmt"
"testing"
"time"
@ -12,19 +13,26 @@ import (
func TestTimeToDateId(t *testing.T) {
assert.Equal(t, "_date_2024-11-07-12-25-59", TimeToDateId(time.Date(2024, time.November, 7, 12, 25, 59, 0, time.UTC)))
assert.Equal(t, "_date_1998-01-01-00-01-01", TimeToDateId(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.UTC)))
assert.Equal(t, "_date_1997-12-31-20-01-01", TimeToDateId(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.FixedZone("UTC", +4*60*60))))
assert.Equal(t, "_date_2124-12-25-23-34-00", TimeToDateId(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.UTC)))
assert.Equal(t, "_date_2124-12-26-01-34-00", TimeToDateId(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.FixedZone("UTC", -2*60*60))))
}
func TestTimeToShortDateId(t *testing.T) {
assert.Equal(t, "_date_2024-11-07", TimeToShortDateId(time.Date(2024, time.November, 7, 12, 25, 59, 0, time.UTC)))
assert.Equal(t, "_date_1998-01-01", TimeToShortDateId(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.UTC)))
assert.Equal(t, "_date_1997-12-31", TimeToShortDateId(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.FixedZone("UTC", +4*60*60))))
assert.Equal(t, "_date_2124-12-25", TimeToShortDateId(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.UTC)))
assert.Equal(t, "_date_2124-12-26", TimeToShortDateId(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.FixedZone("UTC", -2*60*60))))
}
func TestTimeToDateName(t *testing.T) {
assert.Equal(t, "07 Nov 2024", TimeToDateName(time.Date(2024, time.November, 7, 12, 25, 59, 0, time.UTC)))
assert.Equal(t, "01 Jan 1998", TimeToDateName(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.UTC)))
assert.Equal(t, "25 Dec 2124", TimeToDateName(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.UTC)))
assert.Equal(t, "07 Nov 2024", TimeToDateName(time.Date(2024, time.November, 7, 12, 25, 59, 0, time.UTC), time.UTC))
assert.Equal(t, "01 Jan 1998", TimeToDateName(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.UTC), time.UTC))
assert.Equal(t, "31 Dec 1997", TimeToDateName(time.Date(1998, time.January, 1, 0, 1, 1, 0, time.FixedZone("UTC", +4*60*60)), time.UTC))
assert.Equal(t, "25 Dec 2124", TimeToDateName(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.UTC), time.UTC))
assert.Equal(t, "26 Dec 2124", TimeToDateName(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.FixedZone("UTC", -2*60*60)), time.UTC))
assert.Equal(t, "25 Dec 2124", TimeToDateName(time.Date(2124, time.December, 25, 23, 34, 0, 0, time.FixedZone("UTC", -2*60*60)), time.FixedZone("UTC", -2*60*60)))
}
func TestParseDateId(t *testing.T) {
@ -33,11 +41,15 @@ func TestParseDateId(t *testing.T) {
time.Date(2024, time.December, 7, 12, 25, 59, 0, time.UTC),
time.Date(2024, time.November, 7, 12, 25, 59, 0, time.UTC),
time.Date(1998, time.January, 1, 0, 1, 1, 0, time.UTC),
time.Date(1998, time.January, 1, 0, 1, 1, 0, time.FixedZone("UTC", +4*60*60)),
time.Date(2124, time.December, 25, 23, 34, 0, 0, time.UTC),
time.Date(2124, time.December, 25, 23, 34, 0, 0, time.FixedZone("UTC", -2*60*60)),
} {
ts2, err := ParseDateId(TimeToDateId(ts))
dateId := TimeToDateId(ts)
ts2, err := ParseDateId(dateId)
fmt.Println(ts, dateId, ts2)
assert.NoError(t, err)
assert.Equal(t, ts, ts2)
assert.Equal(t, ts.Unix(), ts2.Unix())
}
})