diff options
author | David Lu <david.lu97@outlook.com> | 2016-09-06 18:51:27 -0400 |
---|---|---|
committer | enahum <nahumhbl@gmail.com> | 2016-09-06 19:51:27 -0300 |
commit | 51501f920c092791c7d83ac7067874547a37c96a (patch) | |
tree | 8665cdc82c4fa99ba5c2b6743c66e0912fd53ddb /vendor/github.com/jehiah/go-strftime | |
parent | 47d77d258961f95f4348b4745da062c08731b283 (diff) | |
download | chat-51501f920c092791c7d83ac7067874547a37c96a.tar.gz chat-51501f920c092791c7d83ac7067874547a37c96a.tar.bz2 chat-51501f920c092791c7d83ac7067874547a37c96a.zip |
PLT-3753 Added Segment analytics (#3972)
Diffstat (limited to 'vendor/github.com/jehiah/go-strftime')
-rw-r--r-- | vendor/github.com/jehiah/go-strftime/README.md | 4 | ||||
-rw-r--r-- | vendor/github.com/jehiah/go-strftime/strftime.go | 71 | ||||
-rw-r--r-- | vendor/github.com/jehiah/go-strftime/strftime_test.go | 40 |
3 files changed, 115 insertions, 0 deletions
diff --git a/vendor/github.com/jehiah/go-strftime/README.md b/vendor/github.com/jehiah/go-strftime/README.md new file mode 100644 index 000000000..8eb240384 --- /dev/null +++ b/vendor/github.com/jehiah/go-strftime/README.md @@ -0,0 +1,4 @@ +go-strftime +=========== + +go implementation of strftime
\ No newline at end of file diff --git a/vendor/github.com/jehiah/go-strftime/strftime.go b/vendor/github.com/jehiah/go-strftime/strftime.go new file mode 100644 index 000000000..99e26716f --- /dev/null +++ b/vendor/github.com/jehiah/go-strftime/strftime.go @@ -0,0 +1,71 @@ +// go implementation of strftime +package strftime + +import ( + "strings" + "time" +) + +// taken from time/format.go +var conversion = map[rune]string { + /*stdLongMonth */ 'B':"January", + /*stdMonth */ 'b': "Jan", + // stdNumMonth */ 'm': "1", + /*stdZeroMonth */ 'm': "01", + /*stdLongWeekDay */ 'A': "Monday", + /*stdWeekDay */ 'a': "Mon", + // stdDay */ 'd': "2", + // stdUnderDay */ 'd': "_2", + /*stdZeroDay */ 'd': "02", + /*stdHour */ 'H': "15", + // stdHour12 */ 'I': "3", + /*stdZeroHour12 */ 'I': "03", + // stdMinute */ 'M': "4", + /*stdZeroMinute */ 'M': "04", + // stdSecond */ 'S': "5", + /*stdZeroSecond */ 'S': "05", + /*stdLongYear */ 'Y': "2006", + /*stdYear */ 'y': "06", + /*stdPM */ 'p': "PM", + // stdpm */ 'p': "pm", + /*stdTZ */ 'Z': "MST", + // stdISO8601TZ */ 'z': "Z0700", // prints Z for UTC + // stdISO8601ColonTZ */ 'z': "Z07:00", // prints Z for UTC + /*stdNumTZ */ 'z': "-0700", // always numeric + // stdNumShortTZ */ 'b': "-07", // always numeric + // stdNumColonTZ */ 'b': "-07:00", // always numeric +} + +// This is an alternative to time.Format because no one knows +// what date 040305 is supposed to create when used as a 'layout' string +// this takes standard strftime format options. For a complete list +// of format options see http://strftime.org/ +func Format(format string, t time.Time) string { + retval := make([]byte, 0, len(format)) + for i, ni := 0, 0; i < len(format); i = ni + 2 { + ni = strings.IndexByte(format[i:], '%') + if ni < 0 { + ni = len(format) + } else { + ni += i + } + retval = append(retval, []byte(format[i:ni])...) + if ni + 1 < len(format) { + c := format[ni + 1] + if c == '%' { + retval = append(retval, '%') + } else { + if layoutCmd, ok := conversion[rune(c)]; ok { + retval = append(retval, []byte(t.Format(layoutCmd))...) + } else { + retval = append(retval, '%', c) + } + } + } else { + if ni < len(format) { + retval = append(retval, '%') + } + } + } + return string(retval) +} diff --git a/vendor/github.com/jehiah/go-strftime/strftime_test.go b/vendor/github.com/jehiah/go-strftime/strftime_test.go new file mode 100644 index 000000000..45cbca345 --- /dev/null +++ b/vendor/github.com/jehiah/go-strftime/strftime_test.go @@ -0,0 +1,40 @@ +package strftime + +import ( + "time" + "fmt" + "testing" +) + +func ExampleFormat() { + t := time.Unix(1340244776, 0) + utc, _ := time.LoadLocation("UTC") + t = t.In(utc) + fmt.Println(Format("%Y-%m-%d %H:%M:%S", t)) + // Output: + // 2012-06-21 02:12:56 +} + +func TestNoLeadingPercentSign(t *testing.T) { + tm := time.Unix(1340244776, 0) + utc, _ := time.LoadLocation("UTC") + tm = tm.In(utc) + result := Format("aaabbb0123456789%Y", tm) + if result != "aaabbb01234567892012" { + t.Logf("%s != %s", result, "aaabbb01234567892012") + t.Fail() + } +} + + +func TestUnsupported(t *testing.T) { + tm := time.Unix(1340244776, 0) + utc, _ := time.LoadLocation("UTC") + tm = tm.In(utc) + result := Format("%0%1%%%2", tm) + if result != "%0%1%%2" { + t.Logf("%s != %s", result, "%0%1%%2") + t.Fail() + } +} + |