Skip to content

Date Parser 📅

Robust parsing and formatting utilities for Go time.Time values.

Part of the entiqon common/extension toolkit.


✨ Features

  • Parse strings and interfaces into time.Time
  • Clean and normalize date inputs before parsing
  • Support for default layouts (e.g. 2006-01-02, 20060102, 02-01-2006)
  • Customizable formatters with ParseAndFormat
  • Error handling for invalid and incomplete inputs
  • Full test coverage (file → methods → cases)

📑 API Reference

ParseFrom(value any) (time.Time, error)

Attempt to parse supported values into time.Time.

  • string → parsed against known date layouts after cleaning
  • []byte → parsed as string
  • time.Time → returned directly
  • unsupported/nil → returns error

ParseAndFormat(value any, layout string) (string, error)

Parse an input into a time, then format with a given Go layout.

Cleaning(raw string) string

Normalize a raw date string by trimming, removing spaces, replacing separators, etc.


🔹 Usage Examples

package main

import (
    "fmt"
    "github.com/entiqon/common/extension/date"
)

func main() {
    t, _ := date.ParseFrom("2025-08-21")
    fmt.Println(t.Format("2006-01-02"))

    out := date.ParseAndFormat("21/08/2025", "2006-01-02")
    fmt.Println(out)
}

Output:

2025-08-21
2025-08-21

📌 Summary

  • Core: ParseFrom(any) (time.Time, error)
  • Formatting: ParseAndFormat(any, layout string) (string, error)
  • Cleaning: Cleaning(string) string