timefmt

package module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2021 License: MIT Imports: 4 Imported by: 0

README

timefmt-go

CI Status Go Report Card MIT License release pkg.go.dev

Efficient time formatting library (strftime, strptime) for Golang

This is a Go language package for formatting and parsing date time strings.

package main

import (
	"fmt"
	"log"

	"github.com/itchyny/timefmt-go"
)

func main() {
	t, err := timefmt.Parse("2020/07/24 09:07:29", "%Y/%m/%d %H:%M:%S")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(t) // 2020-07-24 09:07:29 +0000 UTC

	str := timefmt.Format(t, "%Y/%m/%d %H:%M:%S")
	fmt.Println(str) // 2020/07/24 09:07:29

	str = timefmt.Format(t, "%a, %d %b %Y %T %z")
	fmt.Println(str) // Fri, 24 Jul 2020 09:07:29 +0000
}

Please refer to man 3 strftime and man 3 strptime for formatters. Note that E and O modifier characters are not supported.

Comparison to other libraries

  • This library
    • provides both formatting and parsing functions in pure Go language,
    • depends only on the Go standard libraries not to grows up the module file.
  • Format (strftime) implements glibc extensions including
    • width specifier like %10A, %10B %2k:%M,
    • omitting padding modifier like %-y-%-m-%-d,
    • space padding modifier like %_y-%_m-%_d,
    • upper case modifier like %^a %^b,
    • swapping case modifier like %#Z,
    • time zone offset modifier like %:z %::z %:::z,
    • and its performance is very good.
  • AppendFormat is provided for reducing allocations.
  • Parse (strptime) allows to parse
    • composed directives like %F %T,
    • century years like %C %y,
    • week names like %A %a (parsed results are discarded).

Bug Tracker

Report bug at Issues・itchyny/timefmt-go - GitHub.

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendFormat

func AppendFormat(buf []byte, t time.Time, format string) []byte

AppendFormat appends formatted time to the bytes. You can use this method to reduce allocations.

func Format

func Format(t time.Time, format string) string

Format time to string using the format.

Example
t := time.Date(2020, time.July, 24, 9, 7, 29, 0, time.UTC)
str := timefmt.Format(t, "%Y-%m-%d %H:%M:%S")
fmt.Println(str)
Output:

2020-07-24 09:07:29

func Parse

func Parse(source, format string) (t time.Time, err error)

Parse time string using the format.

Example
str := "2020-07-24 09:07:29"
t, err := timefmt.Parse(str, "%Y-%m-%d %H:%M:%S")
if err != nil {
	log.Fatal(err)
}
fmt.Println(t)
Output:

2020-07-24 09:07:29 +0000 UTC

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL