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
}
// Парсим дату в формате EXIF: "2006:01:02 15:04:05"
date, err := time.Parse("2006:01:02 15:04:05", dateStr)
if err != nil {
continue
date := parseDateTime(dateStr)
if date != nil {
return date
}
return &date
}
return nil
@@ -253,19 +250,9 @@ func extractDateFromExifTool(path string) *time.Time {
continue
}
// Пытаемся парсить различные форматы дат
formats := []string{
"2006:01:02 15:04:05",
"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
}
date := parseDateTime(dateStr)
if date != nil {
return date
}
}
}
@@ -344,6 +331,24 @@ func calculateFileHash(path string) (string, error) {
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 {
// Создаем директорию назначения, если она не существует
destDir := filepath.Dir(destPath)