auf meinen Kommentar Expanding:
Gerade Monday
ohne weitere Da die Datumsreferenz in den Augen des Parsers bedeutungslos ist, wird sie verworfen. Welcher Montag? Der Parser ist streng, nicht unscharf. Angenommen, Montag bezieht sich auf die aktuelle Woche, ist etwas, was ein solcher Parser nicht kann. Sie werden dafür keinen eigenen komplexeren Parser schreiben.
So würde es in dieser Richtung sein - eine Funktion, die einen relativ unscharf Tag zu einem echten Datum konvertiert, und ersetzt den in den ursprünglichen Ausdruck, und ein anderer, der die ganze Sache parst:
const dateFormat = "2006-01-02"
const longForm = "2006-01-02 at 3:04 PM"
func parseFuzzyDate(fuzzyTime string) (time.Time, error) {
formattedTime, err := parseDayAndReplaceIt(fuzzyTime)
if err != nil {
return nil, err
}
return time.Parse(longForm, formattedTime)
}
und die zweite Funktion bekommt die unscharfe Zeit, findet den Tag, analysiert ihn und kehrt zurück. Ich werde es nicht implementieren, einfach in den Kommentaren schreiben, was getan werden sollte:
func parseDayAndReplaceIt(fuzzyTime string) (string, error) {
// 1. Extract the day
// 2. Parse weekday names to relative time
// 3. if it's not a weekday name, parse things like "tomorrow" "yesterday"
// 4. replace the day string in the original fuzzyTime with a formatted date that the parser can understand
// 5. return the formatted date
}
'Monday' ohne weitere aktuelle Referenz ist in den Augen des Parsers bedeutungslos, so wird sie verworfen. Welcher Montag? Sie werden dafür keinen eigenen komplexeren Parser schreiben. –
@Not_a_Golfer: ersten Montag in der Vergangenheit, schrieb ich bereits, dass in der Frage: 'So Format ist" DAY (in der Vergangenheit) um TIME ". Ich habe folgendes Beispiel versucht: ' –
Ja, aber kannst du dem Parser das sagen? Nee! –