AppleサポートAppおよびYouTubeチャンネルのお知らせ

* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。

YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。

コミュニティでの投票方法と通知設定

コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。

Apple Account(Apple ID)の不正利用を確認する方法

Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。

macOS Sequoia - 写真のサムネイル画面で作成日表示が正しくない

Mac OS をSequoiaに変えてから起こったことです.


* タイトルを変更しました。 Apple Inc.

Mac mini, macOS 15.0

投稿日 2024/09/29 11:51

返信
返信: 18

2024/09/30 16:50 denk161 への返信

例えば exiftool コマンドにより Date/Time Original を取得する AppleScript はこんな感じ。



on run {argv}
    repeat with f in argv
        set fpath to f's POSIX path
        set DateTimeOriginal to my func(fpath) # DateTimeOriginal : %Y-%m-%d %H:%M:%S
    end repeat
end run

on func(fpath)
    do shell script "/usr/local/bin/exiftool -s3 -DateTimeOriginal -d '%Y-%m-%d %H:%M:%S' " & fpath's quoted form
end func


exiftool が /usr/local/bin に入っていることを前提としてます。別の場所なら適宜変更してください。同コマンドは -d オプションで日時の書式を指定できるので、好きなように変更してください。あと、Date/Time Original 以外の日時を求めたい場合も適宜変更。


で、この AppleScript によりファイル名を変更?すれば良いと思います。リネームのルールを明示すれば誰か答えてくれるかもしれません。


2024/10/27 15:08 denk161 への返信

コードをベタベタ貼るもどうかと思いましたが、需要が多そうなのでポストしますね。


以下は EXIF 情報の DataTimeOriginal を取得して、ファイルの作成日と変更日をセットする AppleScript です。

exiftool コマンドを使わない方法です。


作り方: スクリプトエディタに下記のコードをコピペして保存

使い方: スクリプトエディタから実行


# コード


use AppleScript version "2.7"
use scripting additions
use framework "Cocoa"

property OSX : current application
property nil : missing value

on run
    set uti to "public.jpeg"
    set msg to "JPEG ファイルを選択してください (複数選択できます)"

    set args to choose file of type uti with prompt msg with multiple selections allowed

    repeat with f in args
        set filemanager to OSX's NSFileManager's defaultManager()
        set fpath to f's POSIX path
        set odate to get_odate(fpath)
        if odate is not nil then
            set new_attrs to {NSFileCreationDate:odate, NSFileModificationDate:odate}
            set {res, err} to (filemanager's setAttributes:new_attrs ofItemAtPath:fpath |error|:(reference))
            if not res then
                error err's localizedDescription() as text
            end if
        end if
    end repeat
end run

on get_odate(fpath)
    set odate to nil

    set rep to OSX's NSBitmapImageRep's imageRepWithContentsOfFile:fpath
    if rep is not nil then
        set exif to rep's valueForProperty:"NSImageEXIFData"
        if exif is not nil then
            set odate to exif's objectForKey:"DateTimeOriginal"
        end if
    end if

    if odate is not nil then
        set df to OSX's NSDateFormatter's alloc()'s init()
        set df's locale to OSX's NSLocale's localeWithLocaleIdentifier:"en_US_POSIX"
        set df's dateFormat to "yyyy:MM:dd HH:mm:ss"
        set odate to (df's dateFromString:odate)
    end if

    return odate
end get_odate


2024/09/30 11:49 denk161 への返信

>作成日表示が正しくない

denk162さんの場合は、作成日にどのような日付が表示されているのでしょうか?


以下は先日(9/24)私がiPhone 15で撮影したものをMacの写真アプリに取り込み(iCloud経由)、

その写真をMacのピクチャーフォルダに先ほど(9/30)コピーしたものです。


macOS Sequoia 15.0のFinderでカラム表示してみると、「作成日」には「コンテンツの作成日」(=撮影日?)と同じ日時が表示されています。


2024/09/30 10:42 T22T への返信

Finder Window でColumn形式を用いると,指定したFileのサムネイルが最も右の欄に現れると思いますが,この欄の作成日が正しく表示されません(Olympus製のOM-Dを使用しています).ちなみに,exiftoolを用いると,オリジナルデートが正しく入っています.Automatorを用いて,File Nameの一括変換,整理をするのに大きな支障となります.対処方法がありましたら,お教えいただければ,助かります.

2024/09/30 11:50 denk161 への返信

>Sequoia以前のOSで正しく表示


それはあなたの思い込みでは?

ずっと以前から類似の書き込みは多いです。

ファインダーで表示するのはあくまでもファイルとしての作成・変更日時。os(macOSに限りません)が管理すべきはファイルシステムでの作成・変更日時だからです。

写真の撮影日はexif情報に書き込まれてますので、そちらを参照すべきです。カメラで写真を撮り、それをメモリーに記録すればそれが、そのメモリーカードでの作成日になります。その場合はこの日時は撮影日と一致します。しかし、それをmacなど別のパソコンにコピーすれば、その時がパソコンでのその写真ファイルの作成日で、撮影日とは異なってきます。でもexif情報には正しい撮影日時が記録されてます。

2024/09/30 12:19 Pajerow への返信

>「写真を管理しているアプリ」が関係


アプリというよりはシステムに関係してるのでは?

上げられた最初の例では、iPhoneで撮影して、写真はicloudに同期してるか何かなのでは?その場合は、最初からicloudの写真システムに取り込まれてるから、iphoneで見ようが、macで見ようが作成日(最初にicloud写真システムに取り込まれた日)と撮影日が一致するのでは?

lightroomに取り込んだ場合は、書き出しの仕方で変わるということですが、特別なことをしなければ、普通のosがファイルを管理するときの振る舞いと思います。

2024/09/30 12:36 はに への返信

>作成日(最初にicloud写真システムに取り込まれた日)と撮影日が一致するのでは?

なるほど、そうかもしれません。


>特別なことをしなければ、普通のosがファイルを管理するときの振る舞い

Lightroomで書き出しした場合についてですが、

形式変換して書き出した場合は新しいファイルが作成されるのでFinderで表示される「作成日」が書き出し日時になるのですが、

オリジナルで書き出した場合はFinderで表示される「作成日」は変更されません。(Lightroomが読み込んだ日時のまま)

前者は新規ファイル作成、後者はファイルコピーなのでこれがOSの仕様によるふるまいということになるのでしょう。

2024/09/30 13:47 Pajerow への返信

色々のご意見ありがとうございました.私が考えておりました作成日(時刻)に最も近いのは,pajerow氏の引用されている,コンテンツの作成日(時刻)です.これらは全ての引用について,不変です.この時刻は,光がメモリーカードに記録された時刻として良いと思われます.これが,OS Sequoia,15では反映されないことが問題なのです.私は,Automatorでこの値を用いていて,OSを変えた途端,値が得られなくなってしまいました.どなたか,この値の簡単な求め方をお教えくだされば,ありがたいと思っております.

2024/09/30 11:59 Pajerow への返信

追記)

上記と同じ写真をLightroomから書き出してみました。

この場合、「作成日」には書き出した日時が設定され「コンテンツの作成日」(=撮影日?)と同じ日時にはなりません。

このとおり、Finderによる仕様ではなく書き出したアプリによる違いではないでしょうか?

2024/09/30 12:09 Pajerow への返信

さらに追記)

同じLightroomによる書き出しでも「オリジナルで書き出し」すると状況は変わってきます。

「作成日」は「Lightroomに取り込まれた日時」になります。

いずれにしても、Finderではなく「写真を管理しているアプリ」が関係していることに違いはないでしょう。

2024/09/30 12:52 denk161 への返信

はにさんのコメントとカブりますが、ファイルの作成日はファイルシステム上の作成日であって、コンテンツの作成日とは違うものです。一致する場合もあれば一致しない場合もあります。同じでないから間違ってるということにはなりません。「作成日」がない OS だってあります。


Automator により何かをする際に問題となるということであれば、ワークフローを変更することで対処してください。

macOS Sequoia - 写真のサムネイル画面で作成日表示が正しくない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。