github.com/gogf/gf@v1.16.9/os/gtime/gtime_z_unit_time_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package gtime_test 8 9 import ( 10 "fmt" 11 "testing" 12 "time" 13 14 "github.com/gogf/gf/os/gtime" 15 "github.com/gogf/gf/test/gtest" 16 ) 17 18 func Test_New(t *testing.T) { 19 // time.Time 20 gtest.C(t, func(t *gtest.T) { 21 timeNow := time.Now() 22 timeTemp := gtime.New(timeNow) 23 t.Assert(timeTemp.Time.UnixNano(), timeNow.UnixNano()) 24 25 timeTemp1 := gtime.New() 26 t.Assert(timeTemp1.Time, time.Time{}) 27 }) 28 // string 29 gtest.C(t, func(t *gtest.T) { 30 timeNow := gtime.Now() 31 timeTemp := gtime.New(timeNow.String()) 32 t.Assert(timeTemp.Time.Format("2006-01-02 15:04:05"), timeNow.Time.Format("2006-01-02 15:04:05")) 33 }) 34 gtest.C(t, func(t *gtest.T) { 35 timeNow := gtime.Now() 36 timeTemp := gtime.New(timeNow.TimestampMicroStr()) 37 t.Assert(timeTemp.Time.Format("2006-01-02 15:04:05"), timeNow.Time.Format("2006-01-02 15:04:05")) 38 }) 39 // int64 40 gtest.C(t, func(t *gtest.T) { 41 timeNow := gtime.Now() 42 timeTemp := gtime.New(timeNow.TimestampMicro()) 43 t.Assert(timeTemp.Time.Format("2006-01-02 15:04:05"), timeNow.Time.Format("2006-01-02 15:04:05")) 44 }) 45 // short datetime. 46 gtest.C(t, func(t *gtest.T) { 47 timeTemp := gtime.New("2021-2-9 08:01:21") 48 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2021-02-09 08:01:21") 49 t.Assert(timeTemp.Time.Format("2006-01-02 15:04:05"), "2021-02-09 08:01:21") 50 }) 51 } 52 53 func Test_Nil(t *testing.T) { 54 gtest.C(t, func(t *gtest.T) { 55 var t1 *gtime.Time 56 t.Assert(t1.String(), "") 57 }) 58 gtest.C(t, func(t *gtest.T) { 59 var t1 gtime.Time 60 t.Assert(t1.String(), "") 61 }) 62 } 63 64 func Test_NewFromStr(t *testing.T) { 65 gtest.C(t, func(t *gtest.T) { 66 timeTemp := gtime.NewFromStr("2006-01-02 15:04:05") 67 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2006-01-02 15:04:05") 68 69 timeTemp1 := gtime.NewFromStr("2006.0102") 70 if timeTemp1 != nil { 71 t.Error("test fail") 72 } 73 }) 74 } 75 76 func Test_String(t *testing.T) { 77 gtest.C(t, func(t *gtest.T) { 78 t1 := gtime.NewFromStr("2006-01-02 15:04:05") 79 t.Assert(t1.String(), "2006-01-02 15:04:05") 80 t.Assert(fmt.Sprintf("%s", t1), "2006-01-02 15:04:05") 81 82 t2 := *t1 83 t.Assert(t2.String(), "2006-01-02 15:04:05") 84 t.Assert(fmt.Sprintf("{%s}", t2.String()), "{2006-01-02 15:04:05}") 85 }) 86 } 87 88 func Test_NewFromStrFormat(t *testing.T) { 89 gtest.C(t, func(t *gtest.T) { 90 timeTemp := gtime.NewFromStrFormat("2006-01-02 15:04:05", "Y-m-d H:i:s") 91 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2006-01-02 15:04:05") 92 93 timeTemp1 := gtime.NewFromStrFormat("2006-01-02 15:04:05", "aabbcc") 94 if timeTemp1 != nil { 95 t.Error("test fail") 96 } 97 }) 98 99 gtest.C(t, func(t *gtest.T) { 100 t1 := gtime.NewFromStrFormat("2019/2/1", "Y/n/j") 101 t.Assert(t1.Format("Y-m-d"), "2019-02-01") 102 103 t2 := gtime.NewFromStrFormat("2019/10/12", "Y/n/j") 104 t.Assert(t2.Format("Y-m-d"), "2019-10-12") 105 }) 106 } 107 108 func Test_NewFromStrLayout(t *testing.T) { 109 gtest.C(t, func(t *gtest.T) { 110 timeTemp := gtime.NewFromStrLayout("2006-01-02 15:04:05", "2006-01-02 15:04:05") 111 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2006-01-02 15:04:05") 112 113 timeTemp1 := gtime.NewFromStrLayout("2006-01-02 15:04:05", "aabbcc") 114 if timeTemp1 != nil { 115 t.Error("test fail") 116 } 117 }) 118 } 119 120 func Test_NewFromTimeStamp(t *testing.T) { 121 gtest.C(t, func(t *gtest.T) { 122 timeTemp := gtime.NewFromTimeStamp(1554459846000) 123 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2019-04-05 18:24:06") 124 timeTemp1 := gtime.NewFromTimeStamp(0) 125 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "0001-01-01 00:00:00") 126 }) 127 } 128 129 func Test_Time_Second(t *testing.T) { 130 gtest.C(t, func(t *gtest.T) { 131 timeTemp := gtime.Now() 132 t.Assert(timeTemp.Second(), timeTemp.Time.Second()) 133 }) 134 } 135 136 func Test_Time_Nanosecond(t *testing.T) { 137 gtest.C(t, func(t *gtest.T) { 138 timeTemp := gtime.Now() 139 t.Assert(timeTemp.Nanosecond(), timeTemp.Time.Nanosecond()) 140 }) 141 } 142 143 func Test_Time_Microsecond(t *testing.T) { 144 gtest.C(t, func(t *gtest.T) { 145 timeTemp := gtime.Now() 146 t.Assert(timeTemp.Microsecond(), timeTemp.Time.Nanosecond()/1e3) 147 }) 148 } 149 150 func Test_Time_Millisecond(t *testing.T) { 151 gtest.C(t, func(t *gtest.T) { 152 timeTemp := gtime.Now() 153 t.Assert(timeTemp.Millisecond(), timeTemp.Time.Nanosecond()/1e6) 154 }) 155 } 156 157 func Test_Time_String(t *testing.T) { 158 gtest.C(t, func(t *gtest.T) { 159 timeTemp := gtime.Now() 160 t.Assert(timeTemp.String(), timeTemp.Time.Format("2006-01-02 15:04:05")) 161 }) 162 } 163 164 func Test_Time_ISO8601(t *testing.T) { 165 gtest.C(t, func(t *gtest.T) { 166 now := gtime.Now() 167 t.Assert(now.ISO8601(), now.Format("c")) 168 }) 169 } 170 171 func Test_Time_RFC822(t *testing.T) { 172 gtest.C(t, func(t *gtest.T) { 173 now := gtime.Now() 174 t.Assert(now.RFC822(), now.Format("r")) 175 }) 176 } 177 178 func Test_Clone(t *testing.T) { 179 gtest.C(t, func(t *gtest.T) { 180 timeTemp := gtime.Now() 181 timeTemp1 := timeTemp.Clone() 182 t.Assert(timeTemp.Time.Unix(), timeTemp1.Time.Unix()) 183 }) 184 } 185 186 func Test_ToTime(t *testing.T) { 187 gtest.C(t, func(t *gtest.T) { 188 timeTemp := gtime.Now() 189 timeTemp1 := timeTemp.Time 190 t.Assert(timeTemp.Time.UnixNano(), timeTemp1.UnixNano()) 191 }) 192 } 193 194 func Test_Add(t *testing.T) { 195 gtest.C(t, func(t *gtest.T) { 196 timeTemp := gtime.NewFromStr("2006-01-02 15:04:05") 197 timeTemp = timeTemp.Add(time.Second) 198 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2006-01-02 15:04:06") 199 }) 200 } 201 202 func Test_ToZone(t *testing.T) { 203 gtest.C(t, func(t *gtest.T) { 204 timeTemp := gtime.Now() 205 timeTemp, _ = timeTemp.ToZone("America/Los_Angeles") 206 t.Assert(timeTemp.Time.Location().String(), "America/Los_Angeles") 207 208 loc, err := time.LoadLocation("Asia/Shanghai") 209 if err != nil { 210 t.Error("test fail") 211 } 212 timeTemp = timeTemp.ToLocation(loc) 213 t.Assert(timeTemp.Time.Location().String(), "Asia/Shanghai") 214 215 timeTemp1, _ := timeTemp.ToZone("errZone") 216 if timeTemp1 != nil { 217 t.Error("test fail") 218 } 219 }) 220 } 221 222 func Test_AddDate(t *testing.T) { 223 gtest.C(t, func(t *gtest.T) { 224 timeTemp := gtime.NewFromStr("2006-01-02 15:04:05") 225 timeTemp = timeTemp.AddDate(1, 2, 3) 226 t.Assert(timeTemp.Format("Y-m-d H:i:s"), "2007-03-05 15:04:05") 227 }) 228 } 229 230 func Test_UTC(t *testing.T) { 231 gtest.C(t, func(t *gtest.T) { 232 timeTemp := gtime.Now() 233 timeTemp1 := timeTemp.Time 234 timeTemp.UTC() 235 t.Assert(timeTemp.UnixNano(), timeTemp1.UTC().UnixNano()) 236 }) 237 } 238 239 func Test_Local(t *testing.T) { 240 gtest.C(t, func(t *gtest.T) { 241 timeTemp := gtime.Now() 242 timeTemp1 := timeTemp.Time 243 timeTemp.Local() 244 t.Assert(timeTemp.UnixNano(), timeTemp1.Local().UnixNano()) 245 }) 246 } 247 248 func Test_Round(t *testing.T) { 249 gtest.C(t, func(t *gtest.T) { 250 timeTemp := gtime.Now() 251 timeTemp1 := timeTemp.Time 252 timeTemp = timeTemp.Round(time.Hour) 253 t.Assert(timeTemp.UnixNano(), timeTemp1.Round(time.Hour).UnixNano()) 254 }) 255 } 256 257 func Test_Truncate(t *testing.T) { 258 gtest.C(t, func(t *gtest.T) { 259 timeTemp := gtime.Now() 260 timeTemp1 := timeTemp.Time 261 timeTemp = timeTemp.Truncate(time.Hour) 262 t.Assert(timeTemp.UnixNano(), timeTemp1.Truncate(time.Hour).UnixNano()) 263 }) 264 } 265 266 func Test_StartOfMinute(t *testing.T) { 267 gtest.C(t, func(t *gtest.T) { 268 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 269 timeTemp1 := timeTemp.StartOfMinute() 270 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 18:24:00") 271 }) 272 } 273 274 func Test_EndOfMinute(t *testing.T) { 275 gtest.C(t, func(t *gtest.T) { 276 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 277 timeTemp1 := timeTemp.EndOfMinute() 278 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 18:24:59") 279 }) 280 } 281 282 func Test_StartOfHour(t *testing.T) { 283 gtest.C(t, func(t *gtest.T) { 284 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 285 timeTemp1 := timeTemp.StartOfHour() 286 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 18:00:00") 287 }) 288 } 289 290 func Test_EndOfHour(t *testing.T) { 291 gtest.C(t, func(t *gtest.T) { 292 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 293 timeTemp1 := timeTemp.EndOfHour() 294 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 18:59:59") 295 }) 296 } 297 298 func Test_StartOfDay(t *testing.T) { 299 gtest.C(t, func(t *gtest.T) { 300 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 301 timeTemp1 := timeTemp.StartOfDay() 302 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 00:00:00") 303 }) 304 } 305 306 func Test_EndOfDay(t *testing.T) { 307 gtest.C(t, func(t *gtest.T) { 308 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 309 timeTemp1 := timeTemp.EndOfDay() 310 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 23:59:59") 311 }) 312 } 313 314 func Test_StartOfWeek(t *testing.T) { 315 gtest.C(t, func(t *gtest.T) { 316 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 317 timeTemp1 := timeTemp.StartOfWeek() 318 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-06 00:00:00") 319 }) 320 } 321 322 func Test_EndOfWeek(t *testing.T) { 323 gtest.C(t, func(t *gtest.T) { 324 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 325 timeTemp1 := timeTemp.EndOfWeek() 326 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-12 23:59:59") 327 }) 328 } 329 330 func Test_StartOfMonth(t *testing.T) { 331 gtest.C(t, func(t *gtest.T) { 332 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 333 timeTemp1 := timeTemp.StartOfMonth() 334 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-01 00:00:00") 335 }) 336 } 337 338 func Test_EndOfMonth(t *testing.T) { 339 gtest.C(t, func(t *gtest.T) { 340 timeTemp := gtime.NewFromStr("2020-12-12 18:24:06") 341 timeTemp1 := timeTemp.EndOfMonth() 342 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-31 23:59:59") 343 }) 344 } 345 346 func Test_StartOfQuarter(t *testing.T) { 347 gtest.C(t, func(t *gtest.T) { 348 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 349 timeTemp1 := timeTemp.StartOfQuarter() 350 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-10-01 00:00:00") 351 }) 352 } 353 354 func Test_EndOfQuarter(t *testing.T) { 355 gtest.C(t, func(t *gtest.T) { 356 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 357 timeTemp1 := timeTemp.EndOfQuarter() 358 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-31 23:59:59") 359 }) 360 } 361 362 func Test_StartOfHalf(t *testing.T) { 363 gtest.C(t, func(t *gtest.T) { 364 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 365 timeTemp1 := timeTemp.StartOfHalf() 366 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-07-01 00:00:00") 367 }) 368 } 369 370 func Test_EndOfHalf(t *testing.T) { 371 gtest.C(t, func(t *gtest.T) { 372 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 373 timeTemp1 := timeTemp.EndOfHalf() 374 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-31 23:59:59") 375 }) 376 } 377 378 func Test_StartOfYear(t *testing.T) { 379 gtest.C(t, func(t *gtest.T) { 380 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 381 timeTemp1 := timeTemp.StartOfYear() 382 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-01-01 00:00:00") 383 }) 384 } 385 386 func Test_EndOfYear(t *testing.T) { 387 gtest.C(t, func(t *gtest.T) { 388 timeTemp := gtime.NewFromStr("2020-12-06 18:24:06") 389 timeTemp1 := timeTemp.EndOfYear() 390 t.Assert(timeTemp1.Format("Y-m-d H:i:s"), "2020-12-31 23:59:59") 391 }) 392 }