📚 ts - Awesome Go Library for Command Line

Go Gopher mascot for ts

Timestamp convert & compare tool.

🏷️ Command Line
📂 Libraries for building standard or basic Command Line applications.
20 stars
View on GitHub 🔗

Detailed Description of ts

ts

timestamp convert & compare tool

GoDoc Go Report Card Build Status Version Coverage Status

Install

Shell Install support Linux & MacOS

# binary will be $(go env GOPATH)/bin/ts
$: curl -sfL https://raw.githubusercontent.com/liujianping/ts/master/install.sh | sh -s -- -b $(go env GOPATH)/bin

# In alpine linux (as it does not come with curl by default)
$: wget -O - -q https://raw.githubusercontent.com/liujianping/ts/master/install.sh | sh -s 

Brew Install only MacOS

$: brew tap liujianping/tap && brew install ts

Source Install

$: git clone [email protected]:liujianping/ts.git
$: cd ts
$: go install -mod vendor

Quick Start

$: ts -h
timestamp convert & compare tool

Usage:
  ts [flags]

Examples:

	(now timestamp)	$: ts
	(now add)		$: ts --add 1d
	(now sub)		$: ts --sub 1d
	(convert)		$: ts "2019/06/24 23:30:10"
	(pipe)			$: echo "2019/06/24 23:30:10" | ts
	(format)		$: ts -f "2019/06/25 23:30:10"
	(before)		$: ts -b "2019/06/25 23:30:10" ; echo $?
	(after)			$: ts -a "2019/06/25 23:30:10" ; echo $?
	(timezone)		$: ts -f "2019/06/25 23:30:10" -z "Asia/Shanghai"
	(Formats)		$: ts -F 
		ANSIC       = "Mon Jan _2 15:04:05 2006"
		UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
		RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
		RFC822      = "02 Jan 06 15:04 MST"
		RFC822Z     = "02 Jan 06 15:04 -0700" RFC822 with numeric zone
		RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
		RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
		RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" RFC1123 with numeric zone
		RFC3339     = "2006-01-02T15:04:05Z07:00"
		RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
		Kitchen     = "3:04PM"
		Stamp      = "Jan _2 15:04:05"
		StampMilli = "Jan _2 15:04:05.000"
		StampMicro = "Jan _2 15:04:05.000000"
		StampNano  = "Jan _2 15:04:05.000000000"
		TimestampSec	= "time.Unix()"
		TimestampMilli  = "time.UnixNano()/1000000"
		TimestampMicro  = "time.UnixNano()/1000"
		TimestampNano	= "time.UnixNano()"

Flags:
      --add duration      add duration
  -a, --after string      after compare
  -b, --before string     before compare
  -f, --format string     time format
  -h, --help              help for ts
      --sub duration      sub duration
  -z, --timezone string   time zone

support system format:

  • ANSIC = "Mon Jan _2 15:04:05 2006"
  • UnixDate = "Mon Jan _2 15:04:05 MST 2006"
  • RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
  • RFC822 = "02 Jan 06 15:04 MST"
  • RFC822Z = "02 Jan 06 15:04 -0700" - RFC822 with numeric zone
  • RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
  • RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
  • RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" - RFC1123 with numeric zone
  • RFC3339 = "2006-01-02T15:04:05Z07:00"
  • RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
  • Kitchen = "3:04PM"
  • Stamp = "Jan _2 15:04:05"
  • StampMilli = "Jan _2 15:04:05.000"
  • StampMicro = "Jan _2 15:04:05.000000"
  • StampNano = "Jan _2 15:04:05.000000000"