On Tuesday, 2 October 2018 15:21:08 UTC+2, Eric Raymond wrote:
>
> Is promised in the thread on pytogo, I have blogged on the general topic 
> of rule-swarm attacks in the domain of language transformation.
>
> http://esr.ibiblio.org/?p=8153
>

I'm no pragmatist, I bow to ESR for shining that light. But here's my own, 
tiny contribution to sledge-hammering human-readable dates into internal Go 
format:

//      Function ParseDate() attempts all known legal date formats    79  //    
80  //  More formats can be added as the need arises.  It would not be the    
81  //    first time.    82  //    83  func ParseDate(s string) (d time.Time, 
err error) {    84          s = strings.Trim(s, " \t")    85        if d, err = 
time.Parse("Mon, 02 Jan 2006 15:04:05 -0700 (MST)", s); err == nil {    86      
            return d, nil    87     }    88         if d, err = 
time.Parse("Mon, 02 Jan 2006 15:04:05 -0700", s); err == nil {    89            
    return d, nil    90     }    91         if d, err = time.Parse("Mon, 2 Jan 
2006 15:04:05 -0700 (MST)", s); err == nil {    92           return d, nil    
93     }    94         if d, err = time.Parse("Mon, 2 Jan 2006 15:04:05 -0700", 
s); err == nil {    95                 return d, nil    96     }    97         
if d, err = time.Parse("02 Jan 2006 15:04:05 -0700", s); err == nil {    98     
        return d, nil    99     }   100         if d, err = time.Parse("2 Jan 
2006 15:04:05 -0700", s); err == nil {   101              return d, nil   102   
  }   103         return d, err   104  }   105     106  


Not pretty, I grant. This one was in the context of email headers (RFC-822 
and later) parsing, I just haven't read enough Go code to know if there is 
a better way. The curious thing is that in my life-before-Go, I have 
frequently wanted something like this, but it took what I presume (perhaps 
unfairly) to be Rob Pike's date parsing to give it shape.

Lucio.

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to