1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/golang-module-carbon

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
outputer_unit_test.go 50 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gouguoyin Отправлено 16.04.2025 13:22 10d45ac
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270
package carbon
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestCarbon_String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").String())
assert.Empty(t, Parse("0").String())
assert.Empty(t, Parse("xxx").String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").String())
assert.Equal(t, "2020-08-05", Parse("2020-08-05 13:14:15").SetLayout(DateLayout).String())
})
}
func TestCarbon_GoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "time.Date(1, time.January, 1, 0, 0, 0, 0, time.UTC)", NewCarbon().GoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").GoString())
assert.Empty(t, Parse("0").GoString())
assert.Empty(t, Parse("xxx").GoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "time.Date(2020, time.August, 5, 13, 14, 15, 0, time.UTC)", Parse("2020-08-05 13:14:15").GoString())
assert.Equal(t, "time.Date(2020, time.August, 5, 13, 14, 15, 0, time.Location(\"PRC\"))", Parse("2020-08-05 13:14:15", PRC).GoString())
})
}
func TestCarbon_ToString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00 +0000 UTC", NewCarbon().ToString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToString())
assert.Empty(t, Parse("0").ToString())
assert.Empty(t, Parse("xxx").ToString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15 +0000 UTC", Parse("2020-08-05 13:14:15").ToString())
assert.Equal(t, "2020-08-05 13:14:15 +0800 CST", Parse("2020-08-05 13:14:15", PRC).ToString())
assert.Equal(t, "2020-08-05 21:14:15 +0800 CST", Parse("2020-08-05 13:14:15").ToString(PRC))
})
}
func TestCarbon_ToMonthString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "January", NewCarbon().ToMonthString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToMonthString())
assert.Empty(t, Parse("0").ToMonthString())
assert.Empty(t, Parse("xxx").ToMonthString())
})
t.Run("invalid resources", func(t *testing.T) {
lang := NewLanguage()
resources := map[string]string{
"months": "xxx",
}
lang.SetResources(resources)
c := Parse("2020-01-05").SetLanguage(lang)
assert.Empty(t, c.ToMonthString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "January", Parse("2020-01-05").ToMonthString())
assert.Equal(t, "February", Parse("2020-02-05").ToMonthString())
assert.Equal(t, "March", Parse("2020-03-05").ToMonthString())
assert.Equal(t, "April", Parse("2020-04-05").ToMonthString())
assert.Equal(t, "May", Parse("2020-05-05").ToMonthString())
assert.Equal(t, "June", Parse("2020-06-05").ToMonthString())
assert.Equal(t, "July", Parse("2020-07-05").ToMonthString())
assert.Equal(t, "August", Parse("2020-08-05").ToMonthString())
assert.Equal(t, "September", Parse("2020-09-05").ToMonthString())
assert.Equal(t, "October", Parse("2020-10-05").ToMonthString())
assert.Equal(t, "November", Parse("2020-11-05").ToMonthString())
assert.Equal(t, "December", Parse("2020-12-05").ToMonthString(PRC))
})
}
func TestCarbon_ToShortMonthString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Jan", NewCarbon().ToShortMonthString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortMonthString())
assert.Empty(t, Parse("0").ToShortMonthString())
assert.Empty(t, Parse("xxx").ToShortMonthString())
})
t.Run("invalid resources", func(t *testing.T) {
lang := NewLanguage()
resources := map[string]string{
"months": "",
}
lang.SetResources(resources)
c := Parse("2020-01-05").SetLanguage(lang)
assert.Empty(t, c.ToShortMonthString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Jan", Parse("2020-01-05").ToShortMonthString())
assert.Equal(t, "Feb", Parse("2020-02-05").ToShortMonthString())
assert.Equal(t, "Mar", Parse("2020-03-05").ToShortMonthString())
assert.Equal(t, "Apr", Parse("2020-04-05").ToShortMonthString())
assert.Equal(t, "May", Parse("2020-05-05").ToShortMonthString())
assert.Equal(t, "Jun", Parse("2020-06-05").ToShortMonthString())
assert.Equal(t, "Jul", Parse("2020-07-05").ToShortMonthString())
assert.Equal(t, "Aug", Parse("2020-08-05").ToShortMonthString())
assert.Equal(t, "Sep", Parse("2020-09-05").ToShortMonthString())
assert.Equal(t, "Oct", Parse("2020-10-05").ToShortMonthString())
assert.Equal(t, "Nov", Parse("2020-11-05").ToShortMonthString())
assert.Equal(t, "Dec", Parse("2020-12-05").ToShortMonthString(PRC))
})
}
func TestCarbon_ToWeekString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Monday", NewCarbon().ToWeekString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToWeekString())
assert.Empty(t, Parse("0").ToWeekString())
assert.Empty(t, Parse("xxx").ToWeekString())
})
t.Run("invalid resources", func(t *testing.T) {
lang := NewLanguage()
resources := map[string]string{
"weeks": "xxx",
}
lang.SetResources(resources)
c := Parse("2020-01-05").SetLanguage(lang)
assert.Empty(t, c.ToWeekString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Saturday", Parse("2020-08-01").ToWeekString())
assert.Equal(t, "Sunday", Parse("2020-08-02").ToWeekString())
assert.Equal(t, "Monday", Parse("2020-08-03").ToWeekString())
assert.Equal(t, "Tuesday", Parse("2020-08-04").ToWeekString())
assert.Equal(t, "Wednesday", Parse("2020-08-05").ToWeekString())
assert.Equal(t, "Thursday", Parse("2020-08-06").ToWeekString())
assert.Equal(t, "Friday", Parse("2020-08-07").ToWeekString(PRC))
})
}
func TestCarbon_ToShortWeekString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon", NewCarbon().ToShortWeekString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortWeekString())
assert.Empty(t, Parse("0").ToShortWeekString())
assert.Empty(t, Parse("xxx").ToShortWeekString())
})
t.Run("invalid resources", func(t *testing.T) {
lang := NewLanguage()
resources := map[string]string{
"short_weeks": "xxx",
}
lang.SetResources(resources)
c := Parse("2020-01-05").SetLanguage(lang)
assert.Empty(t, c.ToShortWeekString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Sat", Parse("2020-08-01").ToShortWeekString())
assert.Equal(t, "Sun", Parse("2020-08-02").ToShortWeekString())
assert.Equal(t, "Mon", Parse("2020-08-03").ToShortWeekString())
assert.Equal(t, "Tue", Parse("2020-08-04").ToShortWeekString())
assert.Equal(t, "Wed", Parse("2020-08-05").ToShortWeekString())
assert.Equal(t, "Thu", Parse("2020-08-06").ToShortWeekString())
assert.Equal(t, "Fri", Parse("2020-08-07").ToShortWeekString(PRC))
})
}
func TestCarbon_ToDayDateTimeString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, Jan 1, 0001 12:00 AM", NewCarbon().ToDayDateTimeString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDayDateTimeString())
assert.Empty(t, Parse("0").ToDayDateTimeString())
assert.Empty(t, Parse("xxx").ToDayDateTimeString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, Aug 5, 2020 1:14 PM", Parse("2020-08-05 13:14:15").ToDayDateTimeString())
assert.Equal(t, "Wed, Aug 5, 2020 12:00 AM", Parse("2020-08-05", PRC).ToDayDateTimeString(PRC))
})
}
func TestCarbon_ToDateTimeString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().ToDateTimeString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateTimeString())
assert.Empty(t, Parse("0").ToDateTimeString())
assert.Empty(t, Parse("xxx").ToDateTimeString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").ToDateTimeString())
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateTimeString())
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).ToDateTimeString(PRC))
})
}
func TestCarbon_ToDateTimeMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().ToDateTimeMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateTimeMilliString())
assert.Empty(t, Parse("0").ToDateTimeMilliString())
assert.Empty(t, Parse("xxx").ToDateTimeMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").ToDateTimeMilliString())
assert.Equal(t, "2020-08-05 13:14:15.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateTimeMilliString())
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).ToDateTimeMilliString(PRC))
})
}
func TestCarbon_ToDateTimeMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().ToDateTimeMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateTimeMicroString())
assert.Empty(t, Parse("0").ToDateTimeMicroString())
assert.Empty(t, Parse("xxx").ToDateTimeMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").ToDateTimeMicroString())
assert.Equal(t, "2020-08-05 13:14:15.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateTimeMicroString())
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).ToDateTimeMicroString(PRC))
})
}
func TestCarbon_ToDateTimeNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().ToDateTimeNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateTimeNanoString())
assert.Empty(t, Parse("0").ToDateTimeNanoString())
assert.Empty(t, Parse("xxx").ToDateTimeNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").ToDateTimeNanoString())
assert.Equal(t, "2020-08-05 13:14:15.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateTimeNanoString())
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).ToDateTimeNanoString(PRC))
})
}
func TestCarbon_ToShortDateTimeString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101000000", NewCarbon().ToShortDateTimeString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateTimeString())
assert.Empty(t, Parse("0").ToShortDateTimeString())
assert.Empty(t, Parse("xxx").ToShortDateTimeString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805131415", Parse("2020-08-05 13:14:15").ToShortDateTimeString())
assert.Equal(t, "20200805131415", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateTimeString())
assert.Equal(t, "20200805000000", Parse("2020-08-05", PRC).ToShortDateTimeString(PRC))
})
}
func TestCarbon_ToShortDateTimeMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101000000", NewCarbon().ToShortDateTimeMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateTimeMilliString())
assert.Empty(t, Parse("0").ToShortDateTimeMilliString())
assert.Empty(t, Parse("xxx").ToShortDateTimeMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805131415", Parse("2020-08-05 13:14:15").ToShortDateTimeMilliString())
assert.Equal(t, "20200805131415.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateTimeMilliString())
assert.Equal(t, "20200805000000", Parse("2020-08-05", PRC).ToShortDateTimeMilliString(PRC))
})
}
func TestCarbon_ToShortDateTimeMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101000000", NewCarbon().ToShortDateTimeMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateTimeMicroString())
assert.Empty(t, Parse("0").ToShortDateTimeMicroString())
assert.Empty(t, Parse("xxx").ToShortDateTimeMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805131415", Parse("2020-08-05 13:14:15").ToShortDateTimeMicroString())
assert.Equal(t, "20200805131415.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateTimeMicroString())
assert.Equal(t, "20200805000000", Parse("2020-08-05", PRC).ToShortDateTimeMicroString(PRC))
})
}
func TestCarbon_ToShortDateTimeNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101000000", NewCarbon().ToShortDateTimeNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateTimeNanoString())
assert.Empty(t, Parse("0").ToShortDateTimeNanoString())
assert.Empty(t, Parse("xxx").ToShortDateTimeNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805131415", Parse("2020-08-05 13:14:15").ToShortDateTimeNanoString())
assert.Equal(t, "20200805131415.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateTimeNanoString())
assert.Equal(t, "20200805000000", Parse("2020-08-05", PRC).ToShortDateTimeNanoString(PRC))
})
}
func TestCarbon_ToDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01", NewCarbon().ToDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateString())
assert.Empty(t, Parse("0").ToDateString())
assert.Empty(t, Parse("xxx").ToDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05", Parse("2020-08-05 13:14:15").ToDateString())
assert.Equal(t, "2020-08-05", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateString())
assert.Equal(t, "2020-08-05", Parse("2020-08-05", PRC).ToDateString(PRC))
})
}
func TestCarbon_ToDateMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01", NewCarbon().ToDateMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateMilliString())
assert.Empty(t, Parse("0").ToDateMilliString())
assert.Empty(t, Parse("xxx").ToDateMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05", Parse("2020-08-05 13:14:15").ToDateMilliString())
assert.Equal(t, "2020-08-05.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateMilliString())
assert.Equal(t, "2020-08-05", Parse("2020-08-05", PRC).ToDateMilliString(PRC))
})
}
func TestCarbon_ToDateMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01", NewCarbon().ToDateMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateMicroString())
assert.Empty(t, Parse("0").ToDateMicroString())
assert.Empty(t, Parse("xxx").ToDateMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05", Parse("2020-08-05 13:14:15").ToDateMicroString())
assert.Equal(t, "2020-08-05.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateMicroString())
assert.Equal(t, "2020-08-05", Parse("2020-08-05", PRC).ToDateMicroString(PRC))
})
}
func TestCarbon_ToDateNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01", NewCarbon().ToDateNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToDateNanoString())
assert.Empty(t, Parse("0").ToDateNanoString())
assert.Empty(t, Parse("xxx").ToDateNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05", Parse("2020-08-05 13:14:15").ToDateNanoString())
assert.Equal(t, "2020-08-05.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToDateNanoString())
assert.Equal(t, "2020-08-05", Parse("2020-08-05", PRC).ToDateNanoString(PRC))
})
}
func TestCarbon_ToShortDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101", NewCarbon().ToShortDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateString())
assert.Empty(t, Parse("0").ToShortDateString())
assert.Empty(t, Parse("xxx").ToShortDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805", Parse("2020-08-05 13:14:15").ToShortDateString())
assert.Equal(t, "20200805", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateString())
assert.Equal(t, "20200805", Parse("2020-08-05", PRC).ToShortDateString(PRC))
})
}
func TestCarbon_ToShortDateMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101", NewCarbon().ToShortDateMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateMilliString())
assert.Empty(t, Parse("0").ToShortDateMilliString())
assert.Empty(t, Parse("xxx").ToShortDateMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805", Parse("2020-08-05 13:14:15").ToShortDateMilliString())
assert.Equal(t, "20200805.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateMilliString())
assert.Equal(t, "20200805", Parse("2020-08-05", PRC).ToShortDateMilliString(PRC))
})
}
func TestCarbon_ToShortDateMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101", NewCarbon().ToShortDateMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateMicroString())
assert.Empty(t, Parse("0").ToShortDateMicroString())
assert.Empty(t, Parse("xxx").ToShortDateMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805", Parse("2020-08-05 13:14:15").ToShortDateMicroString())
assert.Equal(t, "20200805.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateMicroString())
assert.Equal(t, "20200805", Parse("2020-08-05", PRC).ToShortDateMicroString(PRC))
})
}
func TestCarbon_ToShortDateNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00010101", NewCarbon().ToShortDateNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortDateNanoString())
assert.Empty(t, Parse("0").ToShortDateNanoString())
assert.Empty(t, Parse("xxx").ToShortDateNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "20200805", Parse("2020-08-05 13:14:15").ToShortDateNanoString())
assert.Equal(t, "20200805.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortDateNanoString())
assert.Equal(t, "20200805", Parse("2020-08-05", PRC).ToShortDateNanoString(PRC))
})
}
func TestCarbon_ToTimeString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00:00:00", NewCarbon().ToTimeString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToTimeString())
assert.Empty(t, Parse("0").ToTimeString())
assert.Empty(t, Parse("xxx").ToTimeString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "13:14:15", Parse("2020-08-05 13:14:15").ToTimeString())
assert.Equal(t, "13:14:15", Parse("2020-08-05T13:14:15.999999999+00:00").ToTimeString())
assert.Equal(t, "00:00:00", Parse("2020-08-05", PRC).ToTimeString(PRC))
})
}
func TestCarbon_ToTimeMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00:00:00", NewCarbon().ToTimeMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToTimeMilliString())
assert.Empty(t, Parse("0").ToTimeMilliString())
assert.Empty(t, Parse("xxx").ToTimeMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "13:14:15", Parse("2020-08-05 13:14:15").ToTimeMilliString())
assert.Equal(t, "13:14:15.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToTimeMilliString())
assert.Equal(t, "00:00:00", Parse("2020-08-05", PRC).ToTimeMilliString(PRC))
})
}
func TestCarbon_ToTimeMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00:00:00", NewCarbon().ToTimeMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToTimeMicroString())
assert.Empty(t, Parse("0").ToTimeMicroString())
assert.Empty(t, Parse("xxx").ToTimeMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "13:14:15", Parse("2020-08-05 13:14:15").ToTimeMicroString())
assert.Equal(t, "13:14:15.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToTimeMicroString())
assert.Equal(t, "00:00:00", Parse("2020-08-05", PRC).ToTimeMicroString(PRC))
})
}
func TestCarbon_ToTimeNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "00:00:00", NewCarbon().ToTimeNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToTimeNanoString())
assert.Empty(t, Parse("0").ToTimeNanoString())
assert.Empty(t, Parse("xxx").ToTimeNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "13:14:15", Parse("2020-08-05 13:14:15").ToTimeNanoString())
assert.Equal(t, "13:14:15.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToTimeNanoString())
assert.Equal(t, "00:00:00", Parse("2020-08-05", PRC).ToTimeNanoString(PRC))
})
}
func TestCarbon_ToShortTimeString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "000000", NewCarbon().ToShortTimeString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortTimeString())
assert.Empty(t, Parse("0").ToShortTimeString())
assert.Empty(t, Parse("xxx").ToShortTimeString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "131415", Parse("2020-08-05 13:14:15").ToShortTimeString())
assert.Equal(t, "131415", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortTimeString())
assert.Equal(t, "000000", Parse("2020-08-05", PRC).ToShortTimeString(PRC))
})
}
func TestCarbon_ToShortTimeMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "000000", NewCarbon().ToShortTimeMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortTimeMilliString())
assert.Empty(t, Parse("0").ToShortTimeMilliString())
assert.Empty(t, Parse("xxx").ToShortTimeMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "131415", Parse("2020-08-05 13:14:15").ToShortTimeMilliString())
assert.Equal(t, "131415.999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortTimeMilliString())
assert.Equal(t, "000000", Parse("2020-08-05", PRC).ToShortTimeMilliString(PRC))
})
}
func TestCarbon_ToShortTimeMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "000000", NewCarbon().ToShortTimeMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortTimeMicroString())
assert.Empty(t, Parse("0").ToShortTimeMicroString())
assert.Empty(t, Parse("xxx").ToShortTimeMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "131415", Parse("2020-08-05 13:14:15").ToShortTimeMicroString())
assert.Equal(t, "131415.999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortTimeMicroString())
assert.Equal(t, "000000", Parse("2020-08-05", PRC).ToShortTimeMicroString(PRC))
})
}
func TestCarbon_ToShortTimeNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "000000", NewCarbon().ToShortTimeNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToShortTimeNanoString())
assert.Empty(t, Parse("0").ToShortTimeNanoString())
assert.Empty(t, Parse("xxx").ToShortTimeNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "131415", Parse("2020-08-05 13:14:15").ToShortTimeNanoString())
assert.Equal(t, "131415.999999999", Parse("2020-08-05T13:14:15.999999999+00:00").ToShortTimeNanoString())
assert.Equal(t, "000000", Parse("2020-08-05", PRC).ToShortTimeNanoString(PRC))
})
}
func TestCarbon_ToAtomString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToAtomString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToAtomString())
assert.Empty(t, Parse("0").ToAtomString())
assert.Empty(t, Parse("xxx").ToAtomString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToAtomString())
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToAtomString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToAtomString(PRC))
})
}
func TestCarbon_ToAnsicString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon Jan 1 00:00:00 0001", NewCarbon().ToAnsicString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToAnsicString())
assert.Empty(t, Parse("0").ToAnsicString())
assert.Empty(t, Parse("xxx").ToAnsicString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed Aug 5 13:14:15 2020", Parse("2020-08-05 13:14:15").ToAnsicString())
assert.Equal(t, "Wed Aug 5 13:14:15 2020", Parse("2020-08-05T13:14:15.999999999+00:00").ToAnsicString())
assert.Equal(t, "Wed Aug 5 00:00:00 2020", Parse("2020-08-05", PRC).ToAnsicString(PRC))
})
}
func TestCarbon_ToCookieString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Monday, 01-Jan-0001 00:00:00 UTC", NewCarbon().ToCookieString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToCookieString())
assert.Empty(t, Parse("0").ToCookieString())
assert.Empty(t, Parse("xxx").ToCookieString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wednesday, 05-Aug-2020 13:14:15 UTC", Parse("2020-08-05 13:14:15").ToCookieString())
assert.Equal(t, "Wednesday, 05-Aug-2020 13:14:15 UTC", Parse("2020-08-05T13:14:15.999999999+00:00").ToCookieString())
assert.Equal(t, "Wednesday, 05-Aug-2020 00:00:00 CST", Parse("2020-08-05", PRC).ToCookieString(PRC))
})
}
func TestCarbon_ToRssString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 0001 00:00:00 +0000", NewCarbon().ToRssString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRssString())
assert.Empty(t, Parse("0").ToRssString())
assert.Empty(t, Parse("xxx").ToRssString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05 13:14:15").ToRssString())
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05T13:14:15.999999999+00:00").ToRssString())
assert.Equal(t, "Wed, 05 Aug 2020 00:00:00 +0800", Parse("2020-08-05", PRC).ToRssString(PRC))
})
}
func TestCarbon_ToW3cString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToW3cString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToW3cString())
assert.Empty(t, Parse("0").ToW3cString())
assert.Empty(t, Parse("xxx").ToW3cString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToW3cString())
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToW3cString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToW3cString(PRC))
})
}
func TestCarbon_ToUnixDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon Jan 1 00:00:00 UTC 0001", NewCarbon().ToUnixDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToUnixDateString())
assert.Empty(t, Parse("0").ToUnixDateString())
assert.Empty(t, Parse("xxx").ToUnixDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed Aug 5 13:14:15 UTC 2020", Parse("2020-08-05 13:14:15").ToUnixDateString())
assert.Equal(t, "Wed Aug 5 13:14:15 UTC 2020", Parse("2020-08-05T13:14:15.999999999+00:00").ToUnixDateString())
assert.Equal(t, "Wed Aug 5 00:00:00 CST 2020", Parse("2020-08-05", PRC).ToUnixDateString(PRC))
})
}
func TestCarbon_ToRubyDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon Jan 01 00:00:00 +0000 0001", NewCarbon().ToRubyDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRubyDateString())
assert.Empty(t, Parse("0").ToRubyDateString())
assert.Empty(t, Parse("xxx").ToRubyDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed Aug 05 13:14:15 +0000 2020", Parse("2020-08-05 13:14:15").ToRubyDateString())
assert.Equal(t, "Wed Aug 05 13:14:15 +0000 2020", Parse("2020-08-05T13:14:15.999999999+00:00").ToRubyDateString())
assert.Equal(t, "Wed Aug 05 00:00:00 +0800 2020", Parse("2020-08-05", PRC).ToRubyDateString(PRC))
})
}
func TestCarbon_ToKitchenString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "12:00AM", NewCarbon().ToKitchenString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToKitchenString())
assert.Empty(t, Parse("0").ToKitchenString())
assert.Empty(t, Parse("xxx").ToKitchenString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "1:14PM", Parse("2020-08-05 13:14:15").ToKitchenString())
assert.Equal(t, "1:14PM", Parse("2020-08-05T13:14:15.999999999+00:00").ToKitchenString())
assert.Equal(t, "12:00AM", Parse("2020-08-05", PRC).ToKitchenString(PRC))
})
}
func TestCarbon_ToIso8601String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00+00:00", NewCarbon().ToIso8601String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601String())
assert.Empty(t, Parse("0").ToIso8601String())
assert.Empty(t, Parse("xxx").ToIso8601String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15+00:00", Parse("2020-08-05 13:14:15").ToIso8601String())
assert.Equal(t, "2020-08-05T13:14:15+00:00", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601String())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToIso8601String(PRC))
})
}
func TestCarbon_ToIso8601MilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00+00:00", NewCarbon().ToIso8601MilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601MilliString())
assert.Empty(t, Parse("0").ToIso8601MilliString())
assert.Empty(t, Parse("xxx").ToIso8601MilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15+00:00", Parse("2020-08-05 13:14:15").ToIso8601MilliString())
assert.Equal(t, "2020-08-05T13:14:15.999+00:00", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601MilliString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToIso8601MilliString(PRC))
})
}
func TestCarbon_TToIso8601MicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00+00:00", NewCarbon().ToIso8601MicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601MicroString())
assert.Empty(t, Parse("0").ToIso8601MicroString())
assert.Empty(t, Parse("xxx").ToIso8601MicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15+00:00", Parse("2020-08-05 13:14:15").ToIso8601MicroString())
assert.Equal(t, "2020-08-05T13:14:15.999999+00:00", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601MicroString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToIso8601MicroString(PRC))
})
}
func TestCarbon_ToIso8601NanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00+00:00", NewCarbon().ToIso8601NanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601NanoString())
assert.Empty(t, Parse("0").ToIso8601NanoString())
assert.Empty(t, Parse("xxx").ToIso8601NanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15+00:00", Parse("2020-08-05 13:14:15").ToIso8601NanoString())
assert.Equal(t, "2020-08-05T13:14:15.999999999+00:00", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601NanoString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToIso8601NanoString(PRC))
})
}
func TestCarbon_ToIso8601ZuluString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToIso8601ZuluString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601ZuluString())
assert.Empty(t, Parse("0").ToIso8601ZuluString())
assert.Empty(t, Parse("xxx").ToIso8601ZuluString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToIso8601ZuluString())
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601ZuluString())
assert.Equal(t, "2020-08-05T00:00:00Z", Parse("2020-08-05", PRC).ToIso8601ZuluString(PRC))
})
}
func TestCarbon_ToIso8601ZuluMilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToIso8601ZuluMilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601ZuluMilliString())
assert.Empty(t, Parse("0").ToIso8601ZuluMilliString())
assert.Empty(t, Parse("xxx").ToIso8601ZuluMilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToIso8601ZuluMilliString())
assert.Equal(t, "2020-08-05T13:14:15.999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601ZuluMilliString())
assert.Equal(t, "2020-08-05T00:00:00Z", Parse("2020-08-05", PRC).ToIso8601ZuluMilliString(PRC))
})
}
func TestCarbon_ToIso8601ZuluMicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToIso8601ZuluMicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601ZuluMicroString())
assert.Empty(t, Parse("0").ToIso8601ZuluMicroString())
assert.Empty(t, Parse("xxx").ToIso8601ZuluMicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToIso8601ZuluMicroString())
assert.Equal(t, "2020-08-05T13:14:15.999999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601ZuluMicroString())
assert.Equal(t, "2020-08-05T00:00:00Z", Parse("2020-08-05", PRC).ToIso8601ZuluMicroString(PRC))
})
}
func TestCarbon_ToIso8601ZuluNanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToIso8601ZuluNanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToIso8601ZuluNanoString())
assert.Empty(t, Parse("0").ToIso8601ZuluNanoString())
assert.Empty(t, Parse("xxx").ToIso8601ZuluNanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToIso8601ZuluNanoString())
assert.Equal(t, "2020-08-05T13:14:15.999999999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToIso8601ZuluNanoString())
assert.Equal(t, "2020-08-05T00:00:00Z", Parse("2020-08-05", PRC).ToIso8601ZuluNanoString(PRC))
})
}
func TestCarbon_ToRfc822String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "01 Jan 01 00:00 UTC", NewCarbon().ToRfc822String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc822String())
assert.Empty(t, Parse("0").ToRfc822String())
assert.Empty(t, Parse("xxx").ToRfc822String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "05 Aug 20 13:14 UTC", Parse("2020-08-05 13:14:15").ToRfc822String())
assert.Equal(t, "05 Aug 20 13:14 UTC", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc822String())
assert.Equal(t, "05 Aug 20 00:00 CST", Parse("2020-08-05", PRC).ToRfc822String(PRC))
})
}
func TestCarbon_ToRfc822zString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "01 Jan 01 00:00 +0000", NewCarbon().ToRfc822zString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc822zString())
assert.Empty(t, Parse("0").ToRfc822zString())
assert.Empty(t, Parse("xxx").ToRfc822zString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "05 Aug 20 13:14 +0000", Parse("2020-08-05 13:14:15").ToRfc822zString())
assert.Equal(t, "05 Aug 20 13:14 +0000", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc822zString())
assert.Equal(t, "05 Aug 20 00:00 +0800", Parse("2020-08-05", PRC).ToRfc822zString(PRC))
})
}
func TestCarbon_ToRfc850String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Monday, 01-Jan-01 00:00:00 UTC", NewCarbon().ToRfc850String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc850String())
assert.Empty(t, Parse("0").ToRfc850String())
assert.Empty(t, Parse("xxx").ToRfc850String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wednesday, 05-Aug-20 13:14:15 UTC", Parse("2020-08-05 13:14:15").ToRfc850String())
assert.Equal(t, "Wednesday, 05-Aug-20 13:14:15 UTC", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc850String())
assert.Equal(t, "Wednesday, 05-Aug-20 00:00:00 CST", Parse("2020-08-05", PRC).ToRfc850String(PRC))
})
}
func TestCarbon_ToRfc1036String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 01 00:00:00 +0000", NewCarbon().ToRfc1036String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc1036String())
assert.Empty(t, Parse("0").ToRfc1036String())
assert.Empty(t, Parse("xxx").ToRfc1036String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 20 13:14:15 +0000", Parse("2020-08-05 13:14:15").ToRfc1036String())
assert.Equal(t, "Wed, 05 Aug 20 13:14:15 +0000", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc1036String())
assert.Equal(t, "Wed, 05 Aug 20 00:00:00 +0800", Parse("2020-08-05", PRC).ToRfc1036String(PRC))
})
}
func TestCarbon_ToRfc1123String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 0001 00:00:00 UTC", NewCarbon().ToRfc1123String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc1123String())
assert.Empty(t, Parse("0").ToRfc1123String())
assert.Empty(t, Parse("xxx").ToRfc1123String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 UTC", Parse("2020-08-05 13:14:15").ToRfc1123String())
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 UTC", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc1123String())
assert.Equal(t, "Wed, 05 Aug 2020 00:00:00 CST", Parse("2020-08-05", PRC).ToRfc1123String(PRC))
})
}
func TestCarbon_ToRfc1123zString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 0001 00:00:00 +0000", NewCarbon().ToRfc1123zString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc1123zString())
assert.Empty(t, Parse("0").ToRfc1123zString())
assert.Empty(t, Parse("xxx").ToRfc1123zString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05 13:14:15").ToRfc1123zString())
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc1123zString())
assert.Equal(t, "Wed, 05 Aug 2020 00:00:00 +0800", Parse("2020-08-05", PRC).ToRfc1123zString(PRC))
})
}
func TestCarbon_ToRfc2822String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 0001 00:00:00 +0000", NewCarbon().ToRfc2822String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc2822String())
assert.Empty(t, Parse("0").ToRfc2822String())
assert.Empty(t, Parse("xxx").ToRfc2822String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05 13:14:15").ToRfc2822String())
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 +0000", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc2822String())
assert.Equal(t, "Wed, 05 Aug 2020 00:00:00 +0800", Parse("2020-08-05", PRC).ToRfc2822String(PRC))
})
}
func TestCarbon_ToRfc3339String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToRfc3339String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc3339String())
assert.Empty(t, Parse("0").ToRfc3339String())
assert.Empty(t, Parse("xxx").ToRfc3339String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToRfc3339String())
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc3339String())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToRfc3339String(PRC))
})
}
func TestCarbon_ToRfc3339MilliString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToRfc3339MilliString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc3339MilliString())
assert.Empty(t, Parse("0").ToRfc3339MilliString())
assert.Empty(t, Parse("xxx").ToRfc3339MilliString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToRfc3339MilliString())
assert.Equal(t, "2020-08-05T13:14:15.999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc3339MilliString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToRfc3339MilliString(PRC))
})
}
func TestCarbon_ToRfc3339MicroString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToRfc3339MicroString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc3339MicroString())
assert.Empty(t, Parse("0").ToRfc3339MicroString())
assert.Empty(t, Parse("xxx").ToRfc3339MicroString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToRfc3339MicroString())
assert.Equal(t, "2020-08-05T13:14:15.999999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc3339MicroString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToRfc3339MicroString(PRC))
})
}
func TestCarbon_ToRfc3339NanoString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01T00:00:00Z", NewCarbon().ToRfc3339NanoString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc3339NanoString())
assert.Empty(t, Parse("0").ToRfc3339NanoString())
assert.Empty(t, Parse("xxx").ToRfc3339NanoString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05T13:14:15Z", Parse("2020-08-05 13:14:15").ToRfc3339NanoString())
assert.Equal(t, "2020-08-05T13:14:15.999999999Z", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc3339NanoString())
assert.Equal(t, "2020-08-05T00:00:00+08:00", Parse("2020-08-05", PRC).ToRfc3339NanoString(PRC))
})
}
func TestCarbon_ToRfc7231String(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, 01 Jan 0001 00:00:00 UTC", NewCarbon().ToRfc7231String())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToRfc7231String())
assert.Empty(t, Parse("0").ToRfc7231String())
assert.Empty(t, Parse("xxx").ToRfc7231String())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 UTC", Parse("2020-08-05 13:14:15").ToRfc7231String())
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 UTC", Parse("2020-08-05T13:14:15.999999999+00:00").ToRfc7231String())
assert.Equal(t, "Wed, 05 Aug 2020 00:00:00 CST", Parse("2020-08-05", PRC).ToRfc7231String(PRC))
})
}
func TestCarbon_ToFormattedDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Jan 1, 0001", NewCarbon().ToFormattedDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToFormattedDateString())
assert.Empty(t, Parse("0").ToFormattedDateString())
assert.Empty(t, Parse("xxx").ToFormattedDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Aug 5, 2020", Parse("2020-08-05 13:14:15").ToFormattedDateString())
assert.Equal(t, "Aug 5, 2020", Parse("2020-08-05T13:14:15.999999999+00:00").ToFormattedDateString())
assert.Equal(t, "Aug 5, 2020", Parse("2020-08-05", PRC).ToFormattedDateString(PRC))
})
}
func TestCarbon_ToFormattedDayDateString(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "Mon, Jan 1, 0001", NewCarbon().ToFormattedDayDateString())
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").ToFormattedDayDateString())
assert.Empty(t, Parse("0").ToFormattedDayDateString())
assert.Empty(t, Parse("xxx").ToFormattedDayDateString())
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "Wed, Aug 5, 2020", Parse("2020-08-05 13:14:15").ToFormattedDayDateString())
assert.Equal(t, "Wed, Aug 5, 2020", Parse("2020-08-05T13:14:15.999999999+00:00").ToFormattedDayDateString())
assert.Equal(t, "Wed, Aug 5, 2020", Parse("2020-08-05", PRC).ToFormattedDayDateString(PRC))
})
}
func TestCarbon_Layout(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().Layout(DateTimeLayout))
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").Layout(DateTimeLayout))
assert.Empty(t, Parse("0").Layout(DateTimeLayout))
assert.Empty(t, Parse("xxx").Layout(DateTimeLayout))
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").Layout(DateTimeLayout))
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05T13:14:15.999999999+00:00").Layout(DateTimeLayout))
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).Layout(DateTimeLayout, PRC))
assert.Equal(t, "2020年08月05日", Parse("2020-08-05 13:14:15").Layout("2006年01月02日"))
assert.Equal(t, "Wed, 05 Aug 2020 13:14:15 GMT", Parse("2020-08-05 13:14:15").Layout("Mon, 02 Jan 2006 15:04:05 GMT"))
assert.Equal(t, "1596633255", Parse("2020-08-05 13:14:15.999999999").Layout(TimestampLayout))
assert.Equal(t, "1596633255999", Parse("2020-08-05 13:14:15.999999999").Layout(TimestampMilliLayout))
assert.Equal(t, "1596633255999999", Parse("2020-08-05 13:14:15.999999999").Layout(TimestampMicroLayout))
assert.Equal(t, "1596633255999999999", Parse("2020-08-05 13:14:15.999999999").Layout(TimestampNanoLayout))
})
}
func TestCarbon_Format(t *testing.T) {
t.Run("zero time", func(t *testing.T) {
assert.Equal(t, "0001-01-01 00:00:00", NewCarbon().Format(DateTimeFormat))
})
t.Run("invalid time", func(t *testing.T) {
assert.Empty(t, Parse("").Format(DateTimeFormat))
assert.Empty(t, Parse("0").Format(DateTimeFormat))
assert.Empty(t, Parse("xxx").Format(DateTimeFormat))
})
t.Run("valid time", func(t *testing.T) {
assert.Equal(t, "2020-08-05 13:14:15", Parse("2020-08-05 13:14:15").Format(DateTimeFormat))
assert.Equal(t, "2020-08-05", Parse("2020-08-05T13:14:15.999999999+00:00").Format(DateFormat))
assert.Equal(t, "2020-08-05 00:00:00", Parse("2020-08-05", PRC).Format(DateTimeFormat, PRC))
assert.Equal(t, "2020年08月05日", Parse("2020-08-05 13:14:15").Format("Y年m月d日"))
assert.Equal(t, "Wed", Parse("2020-08-05 13:14:15").Format("D"))
assert.Equal(t, "Wednesday", Parse("2020-08-05 13:14:15").Format("l"))
assert.Equal(t, "August", Parse("2020-08-05 13:14:15").Format("F"))
assert.Equal(t, "Aug", Parse("2020-08-05 13:14:15").Format("M"))
assert.Equal(t, "5", Parse("2020-08-05 13:14:15").Format("j"))
assert.Equal(t, "32", Parse("2020-08-05 13:14:15").Format("W"))
assert.Equal(t, "August", Parse("2020-08-05 13:14:15").Format("F"))
assert.Equal(t, "03", Parse("2020-08-05 13:14:15").Format("N"))
assert.Equal(t, "1", Parse("2020-08-05 13:14:15").Format("L"))
assert.Equal(t, "0", Parse("2021-08-05 13:14:15").Format("L"))
assert.Equal(t, "13", Parse("2020-08-05 13:14:15").Format("G"))
assert.Equal(t, "1596633255", Parse("2020-08-05 13:14:15").Format("S"))
assert.Equal(t, "1596633255000", Parse("2020-08-05 13:14:15").Format("U"))
assert.Equal(t, "1596633255000000", Parse("2020-08-05 13:14:15").Format("V"))
assert.Equal(t, "1596633255000000000", Parse("2020-08-05 13:14:15").Format("X"))
assert.Equal(t, "999", Parse("2020-08-05 13:14:15.999999999").Format("u"))
assert.Equal(t, "999999", Parse("2020-08-05 13:14:15.999999999").Format("v"))
assert.Equal(t, "999999999", Parse("2020-08-05 13:14:15.999999999").Format("x"))
assert.Equal(t, "2", Parse("2020-08-05 13:14:15.999999999").Format("w"))
assert.Equal(t, "31", Parse("2020-08-05 13:14:15.999999999").Format("t"))
assert.Equal(t, "PRC", Parse("2020-08-05 13:14:15.999999999", PRC).Format("z"))
assert.Equal(t, "28800", Parse("2020-08-05 13:14:15.999999999", PRC).Format("o"))
assert.Equal(t, "3", Parse("2020-08-05 13:14:15.999999999").Format("q"))
assert.Equal(t, "21", Parse("2020-08-05 13:14:15.999999999").Format("c"))
assert.Equal(t, "Z", Parse("2020-08-05 13:14:15.999999999", UTC).Format("R"))
assert.Equal(t, "+08:00", Parse("2020-08-05 13:14:15.999999999", PRC).Format("R"))
assert.Equal(t, "Z", Parse("2020-08-05 13:14:15.999999999", UTC).Format("Q"))
assert.Equal(t, "+0800", Parse("2020-08-05 13:14:15.999999999", PRC).Format("Q"))
assert.Equal(t, "CST", Parse("2020-08-05 13:14:15.999999999", PRC).Format("Z"))
assert.Equal(t, "5th", Parse("2020-08-05 13:14:15").Format("jK"))
assert.Equal(t, "22nd", Parse("2020-08-22 13:14:15").Format("jK"))
assert.Equal(t, "23rd", Parse("2020-08-23 13:14:15").Format("jK"))
assert.Equal(t, "31st", Parse("2020-08-31 13:14:15").Format("jK"))
assert.Equal(t, "It is 2020-08-31 13:14:15", Parse("2020-08-31 13:14:15").Format("I\\t \\i\\s Y-m-d H:i:s"))
assert.Equal(t, "上次打卡时间:2020-08-05 13:14:15,请每日按时打卡", Parse("2020-08-05 13:14:15").Format("上次打卡时间:Y-m-d H:i:s,请每日按时打卡"))
assert.Equal(t, "1596633255", Parse("2020-08-05 13:14:15.999999999").Format(TimestampFormat))
assert.Equal(t, "1596633255999", Parse("2020-08-05 13:14:15.999999999").Format(TimestampMilliFormat))
assert.Equal(t, "1596633255999999", Parse("2020-08-05 13:14:15.999999999").Format(TimestampMicroFormat))
assert.Equal(t, "1596633255999999999", Parse("2020-08-05 13:14:15.999999999").Format(TimestampNanoFormat))
})
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/golang-module-carbon.git
git@api.gitlife.ru:oschina-mirror/golang-module-carbon.git
oschina-mirror
golang-module-carbon
golang-module-carbon
master