Extract parse date func
This commit is contained in:
43
main.go
43
main.go
@@ -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)
|
||||
|
Reference in New Issue
Block a user