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  }