I've a Jsonl file which looks like this:
{"mood": "Good", "when": "2022-10-09 Sun 11:51"}
I'm using Aeson, and Relude as an alternative prelude and I I'm trying to get that when field, to be parsed as a UTCTime as part of a bigger data strcuture. But as UTCTime consists of date-time, not date, day, time.
And I think my parser is failing due to this. So I'm trying to figure out how to filter that out in an idiomatic way, so I can parse it as UTCTime or at the very least narrow down the problem.
I don't know if the idiomatic way there is to take the byteString and turn it into something else for instance text so I can use filter on it, then back to a byteString for for feeding into a fromJSON function.
Or if there is a better way for instance using something in the lens package, which I know of vaguely. I've not looked at it heavily.
So asking here what the idiomatic way would be to get rid of that "Sun"? Any suggestions thanks.
You can simply use parseTimeM from time to parse this for you:
ghci> parseTimeM False defaultTimeLocale "%Y-%m-%d %a %H:%M" "2022-10-09 Sun 11:51" :: Maybe UTCTime
Just 2022-10-09 11:51:00 UTC
Most of the formats are documented in formatTime