fmtdate

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2023 License: BSD-3-Clause Imports: 2 Imported by: 1

README

fmtdate

Note: If you are reading this on Github, please note that the repo has moved to Gitlab (gitlab.com/ezhdanovskiy/fmtdate) and this is only a mirror.

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 (
		"gitlab.com/ezhdanovskiy/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 (
        "gitlab.com/ezhdanovskiy/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 https://pkg.go.dev/gitlab.com/ezhdanovskiy/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/ezhdanovskiy/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"},
	{"yyyy", "2006"},
	{"YY", "06"},
	{"DDDD", "Monday"},
	{"DDD", "Mon"},
	{"DD", "02"},
	{"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

func Translate

func Translate(fmt string) string

Translate translate memorable format to go library's syntax

Types

type TimeDate

type TimeDate struct {
	Format string
	*time.Time
}

func NewTimeDate

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

func (TimeDate) IsNil

func (t TimeDate) IsNil() bool

func (TimeDate) MarshalJSON

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

func (*TimeDate) UnmarshalJSON

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