Extract parse date func

This commit is contained in:
2025-07-23 17:00:29 +03:00
parent 9c8072c08c
commit 6c010d23c7

43
main.go
View File

@@ -206,13 +206,10 @@ func extractDateFromEXIF(path string) *time.Time {
continue continue
} }
// Парсим дату в формате EXIF: "2006:01:02 15:04:05" date := parseDateTime(dateStr)
date, err := time.Parse("2006:01:02 15:04:05", dateStr) if date != nil {
if err != nil { return date
continue
} }
return &date
} }
return nil return nil
@@ -253,19 +250,9 @@ func extractDateFromExifTool(path string) *time.Time {
continue continue
} }
// Пытаемся парсить различные форматы дат date := parseDateTime(dateStr)
formats := []string{ if date != nil {
"2006:01:02 15:04:05", return date
"2006-01-02 15:04:05",
"2006:01:02 15:04:05-07:00",
"2006-01-02T15:04:05Z",
"2006-01-02T15:04:05-07:00",
}
for _, format := range formats {
if date, err := time.Parse(format, dateStr); err == nil {
return &date
}
} }
} }
} }
@@ -344,6 +331,24 @@ func calculateFileHash(path string) (string, error) {
return hash, nil return hash, nil
} }
func parseDateTime(dateStr string) *time.Time {
formats := []string{
"2006:01:02 15:04:05",
"2006:01:02 15:04:05-07:00",
"2006-01-02 15:04:05",
"2006-01-02T15:04:05Z",
"2006-01-02T15:04:05-07:00",
}
for _, format := range formats {
if date, err := time.Parse(format, dateStr); err == nil {
return &date
}
}
return nil
}
func moveFile(fileInfo *FileInfo, destPath string) error { func moveFile(fileInfo *FileInfo, destPath string) error {
// Создаем директорию назначения, если она не существует // Создаем директорию назначения, если она не существует
destDir := filepath.Dir(destPath) destDir := filepath.Dir(destPath)