On Wed, 14 Aug 2019 19:12:40 -0700 (PDT) sp55aa....@gmail.com wrote: > What is the reason behind time.Parse using a reference time?
The rationale is that every position of the reference time can be treated as an enum (of int) stating the exact meaning of the field: 01/02 03:04:05PM '06 -0700 1 2 3 4 5 6 7 : M D h m s year zone/offset You then use these enums to tell the parser where in *your* date/time format to parse these fields are. These are accompanied by words of "Mon"/"Monday" "Jan"/"January" to show parser that format use names. Eg. you may need the "06/01" ("year's last two digit / month") format to extract dates off some monthly financial reports. In other place you will use "__2/06" ("day-of-year/year") to parse daily sales reports. Read https://golang.org/pkg/time/#pkg-constants till it clicks in :) This is as simple and brilliant as many other things in Go. Just the docs are somewhat terse. > I think "2006-01-02 15:04" is a good idea, but have bad practice. > you cannot understand this code directly. then it is easy to write wrong > code like: time.Parse("1970-01-01 00:00", "2011-01-19 22:15") With format placeholders other languages use code is less readable until you memorize all of mnemonics. [ man date, look what %_I does mean]. In Go you need only to remember that month is a first member of "month, day, hour, minutes, seconds, year, zone" sequence and you can read/understand any of hundreds being in use date formats. Hope this helps, -- Wojciech S. Czarnecki << ^oo^ >> OHIR-RIPE -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/20190815144747.65f16214%40zuzia.