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:
parent
b75d5cb64e
commit
d7e016d50d
5 changed files with 28 additions and 12 deletions
|
@ -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) {
|
||||
|
|
|
@ -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())
|
||||
}
|
||||
})
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue