Code Monkey home page Code Monkey logo

yaccdate's Introduction

yaccDate

yaccDate was born because I was trying to parse the Date: field of about 150000 archived emails from the last 20 years. It seems that every possible permutation of legal and illegal variations on the Date/Time/TZ theme have been tried.
parsing dates using time.Parse() became frustrating as I had to add more and more templates, and try them, in a loop, parsing the same date field over and over again. Not only that, since some emails have used unknown timezones,I had to perform some search/replace magic, and then retry all those templates again.
It became obvious that this is not efficient. I decided to write a single parser that will know to test for different versions while scanning the date string once.

How it works

yaccDate works by writing a generic date/time/timezone template using goYacc. The resulting code is much more efficient and can be easily fixed to add more variations.

Building demo from source

cd yaccDate
go generate
cd ../main
go generate

Using the package

Add the following:

import (
    "github.com/udif/yaccDate"
)

Call the following function: func FlexDateToTime(dateStr string) time.Time {}

License

yaccdate's People

Contributors

udif avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.