fmtdate

package module
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2018 License: BSD-3-Clause Imports: 2 Imported by: 0

README

fmtdate

Build Status Total views

100% test coverage (that was easy :-))

fmtdate provides a date formatter and parser using the syntax of Microsoft Excel (TM).

Additionally it offers default conversions for date time and datetime.

Why?

Microsoft Excel (TM) has a well known syntax for date formatting, that more memorable than the syntax chosen in the time package in the go library.

Usage


	package main
	import (
		"github.com/metakeule/fmtdate"
		"fmt"
	)

	func main() {
		date := fmtdate.Format("DD.MM.YYYY", time.Now())
		fmt.Println(date)

		var err
		date, err = fmtdate.Parse("M/D/YY", "2/3/07")
		fmt.Println(date, err)
	}

For json


    package main

    import (
        "github.com/metakeule/fmtdate"
        "fmt"
        "encoding/json"
    )

    type Person struct {
        Name string
        BirthDay fmtdate.TimeDate
    }

    func main() {
        bday, err := fmtdate.NewTimeDate("YYYY-MM-DD", "2000-12-04")
        // do error handling
        paul := &Person{"Paul", bday}

        data, err := json.Marshal(paul)
        // do error handling
    }

Placeholders

M    - month (1)
MM   - month (01)
MMM  - month (Jan)
MMMM - month (January)
D    - day (2)
DD   - day (02)
DDD  - day (Mon)
DDDD - day (Monday)
YY   - year (06)
YYYY - year (2006)
hh   - hours (15)
mm   - minutes (04)
ss   - seconds (05)

AM/PM hours: 'h' followed by optional 'mm' and 'ss' followed by 'pm', e.g.

hpm        - hours (03PM)
h:mmpm     - hours:minutes (03:04PM)
h:mm:sspm  - hours:minutes:seconds (03:04:05PM)

Time zones: a time format followed by 'ZZZZ', 'ZZZ' or 'ZZ', e.g.

hh:mm:ss ZZZZ (16:05:06 +0100)
hh:mm:ss ZZZ  (16:05:06 CET)
hh:mm:ss ZZ   (16:05:06 +01:00)

Documentation

see http://godoc.org/github.com/metakeule/fmtdate

Documentation

Overview

fmtdate provides a date formatter and parser using the syntax of Microsoft Excel (TM).

Additionally it offers default conversions for date time and datetime.

Why?

Microsoft Excel (TM) has a well known syntax for date formatting, that more memorable than the syntax chosen in the time package in the go library.

Usage

package main
import (
	"gopkg.in/metakeule/fmtdate.v1"
	"fmt"
)

func main() {
	date := fmtdate.Format("DD.MM.YYYY", time.Now())
	fmt.Println(date)

	var err
	date, err = fmtdate.Parse("M/D/YY", "2/3/07")
	fmt.Println(date, err)
}

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultTimeFormat     = "hh:mm:ss"
	DefaultDateFormat     = "YYYY-MM-DD"
	DefaultDateTimeFormat = "YYYY-MM-DD hh:mm:ss"
)
View Source
var Placeholder = []p{
	{"hh", "15"},
	{"h", "03"},
	{"mm", "04"},
	{"ss", "05"},
	{"MMMM", "January"},
	{"MMM", "Jan"},
	{"MM", "01"},
	{"M", "1"},
	{"pm", "PM"},
	{"ZZZZ", "-0700"},
	{"ZZZ", "MST"},
	{"ZZ", "Z07:00"},
	{"YYYY", "2006"},
	{"YY", "06"},
	{"DDDD", "Monday"},
	{"DDD", "Mon"},
	{"DD", "02"},
	{"D", "2"},
}

Functions

func Format

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

Format formats a date based on Microsoft Excel (TM) conventions

func FormatDate

func FormatDate(date time.Time) string

FormatDate formats the given date to the DefaultDateFormat

func FormatDateTime

func FormatDateTime(date time.Time) string

FormatTime formats the given date to the DefaultDateTimeFormat

func FormatTime

func FormatTime(date time.Time) string

FormatTime formats the given date to the DefaultTimeFormat

func Parse

func Parse(format string, value string) (time.Time, error)

Parse parses a value to a date based on Microsoft Excel (TM) formats

func ParseDate

func ParseDate(value string) (time.Time, error)

Parse parses a date in DefaultDateFormat to a date

func ParseDateTime

func ParseDateTime(value string) (time.Time, error)

Parse parses a date in DefaultDateTimeFormat to a date

func ParseTime

func ParseTime(value string) (time.Time, error)

Parse parses a date in DefaultTimeFormat to a date

Types

type TimeDate added in v1.1.2

type TimeDate struct {
	Format string
	*time.Time
}

func NewTimeDate added in v1.1.2

func NewTimeDate(format, value string) (td TimeDate, err error)

func (TimeDate) IsNil added in v1.1.2

func (t TimeDate) IsNil() bool

func (TimeDate) MarshalJSON added in v1.1.2

func (t TimeDate) MarshalJSON() ([]byte, error)

func (*TimeDate) UnmarshalJSON added in v1.1.2

func (t *TimeDate) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

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