github.com/viant/toolbox@v0.34.5/time_format_test.go (about)

     1  package toolbox_test
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/stretchr/testify/assert"
     6  	"github.com/viant/toolbox"
     7  	"strings"
     8  	"testing"
     9  	"time"
    10  )
    11  
    12  func TestTimeFormat(t *testing.T) {
    13  
    14  	{
    15  		timeLayout := toolbox.DateFormatToLayout("yyyy/MM/dd/hh")
    16  		fmt.Printf("%s\n", timeLayout)
    17  	}
    18  
    19  		{
    20  		timeLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss z")
    21  		timeValue, err := time.Parse(timeLayout, "2018-01-15 08:02:23 UTC")
    22  		assert.Nil(t, err)
    23  		assert.EqualValues(t, 23, timeValue.Second())
    24  	}
    25  
    26  	{
    27  		timeLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss")
    28  		timeValue, err := time.Parse(timeLayout, "2016-03-01 03:10:11")
    29  		assert.Nil(t, err)
    30  		assert.EqualValues(t, 11, timeValue.Second())
    31  	}
    32  
    33  	{
    34  
    35  		dateLayout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSSZ")
    36  		timeValue, err := time.Parse(dateLayout, "2022-11-10 10:32:28.984-08")
    37  		assert.Nil(t, err)
    38  
    39  		assert.Equal(t, int64(1668105148), timeValue.Unix())
    40  	}
    41  
    42  	{
    43  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSSZ")
    44  		timeValue, err := time.Parse(dateLaout, "2022-11-10 10:32:28.984-08")
    45  		assert.Nil(t, err)
    46  		assert.Equal(t, int64(1668105148), timeValue.Unix())
    47  	}
    48  
    49  	{
    50  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss.SSS")
    51  		timeValue, err := time.Parse(dateLaout, "2017-11-04 22:29:33.363")
    52  		assert.Nil(t, err)
    53  
    54  		assert.Equal(t, 2017, timeValue.Year())
    55  		assert.Equal(t, time.Month(11), timeValue.Month())
    56  		assert.Equal(t, 4, timeValue.Day())
    57  
    58  		assert.Equal(t, int64(1509834573), timeValue.Unix())
    59  	}
    60  
    61  	{
    62  		dateLaout := toolbox.DateFormatToLayout("dd/MM/yyyy hh:mm:ss")
    63  		timeValue, err := time.Parse(dateLaout, "22/02/2016 12:32:01")
    64  		assert.Nil(t, err)
    65  		assert.Equal(t, int64(1456144321), timeValue.Unix())
    66  	}
    67  
    68  	{
    69  		dateLaout := toolbox.DateFormatToLayout("yyyyMMdd hh:mm:ss")
    70  		timeValue, err := time.Parse(dateLaout, "20160222 12:32:01")
    71  		assert.Nil(t, err)
    72  		assert.Equal(t, int64(1456144321), timeValue.Unix())
    73  	}
    74  
    75  	{
    76  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z")
    77  		timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC")
    78  		assert.Nil(t, err)
    79  		assert.Equal(t, int64(1456144321), timeValue.Unix())
    80  	}
    81  
    82  	{
    83  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z")
    84  		timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC")
    85  		assert.Nil(t, err)
    86  		assert.Equal(t, int64(1456144321), timeValue.Unix())
    87  	}
    88  
    89  	{
    90  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd hh:mm:ss z")
    91  		timeValue, err := time.Parse(dateLaout, "2016-02-22 12:32:01 UTC")
    92  		assert.Nil(t, err)
    93  		assert.Equal(t, int64(1456144321), timeValue.Unix())
    94  	}
    95  
    96  	{
    97  		dateLaout := toolbox.DateFormatToLayout("yyyy-MM-dd HH:mm:ss z")
    98  		timeValue, err := time.Parse(dateLaout, "2016-06-02 21:46:19 UTC")
    99  		assert.Nil(t, err)
   100  		assert.Equal(t, int64(1464903979), timeValue.Unix())
   101  	}
   102  
   103  }
   104  
   105  func TestGetTimeLayout(t *testing.T) {
   106  	{
   107  		settings := map[string]string{
   108  			toolbox.DateFormatKeyword: "yyyy-MM-dd HH:mm:ss z",
   109  		}
   110  		assert.Equal(t, "2006-01-02 15:04:05 MST", toolbox.GetTimeLayout(settings))
   111  		assert.True(t, toolbox.HasTimeLayout(settings))
   112  	}
   113  	{
   114  		settings := map[string]string{
   115  			toolbox.DateLayoutKeyword: "2006-1-02 15:04:05 MST",
   116  		}
   117  		assert.Equal(t, "2006-1-02 15:04:05 MST", toolbox.GetTimeLayout(settings))
   118  		assert.True(t, toolbox.HasTimeLayout(settings))
   119  	}
   120  	{
   121  		settings := map[string]string{}
   122  		assert.False(t, toolbox.HasTimeLayout(settings))
   123  
   124  	}
   125  }
   126  
   127  func TestTimestampToString(t *testing.T) {
   128  
   129  	{
   130  		date := toolbox.TimestampToString("yyyy-MM-dd HH:mm:ss z", int64(0), 1480435743722684356)
   131  		assert.True(t, strings.Contains(date, "2016-11"))
   132  	}
   133  	{
   134  
   135  		date := toolbox.TimestampToString("yyyyMMddhh", int64(0), 1489512277722684356)
   136  		assert.True(t, strings.Contains(date, "201703"))
   137  	}
   138  
   139  }