From 8c9b04d1ec9c53b6d1e601f44256f56158a3b2d3 Mon Sep 17 00:00:00 2001 From: Sean Krueger Date: Sat, 7 Sep 2024 20:17:18 -0700 Subject: [PATCH] fix(ui): use `birthtime` for creation time on mac & win (#472) * fix(PreviewPanel): Use birthtime for creation time st_ctime does not provide accurate creation time on MacOS, and as of Python 3.12 is deprecated for Windows. On these two platforms use st_birthtime, but fall back to st_ctime on linux. * mypy errors --- tagstudio/src/qt/widgets/preview_panel.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tagstudio/src/qt/widgets/preview_panel.py b/tagstudio/src/qt/widgets/preview_panel.py index cf02d45f..9e62f64f 100644 --- a/tagstudio/src/qt/widgets/preview_panel.py +++ b/tagstudio/src/qt/widgets/preview_panel.py @@ -492,7 +492,11 @@ class PreviewPanel(QWidget): def update_date_label(self, filepath: Path | None = None) -> None: """Update the "Date Created" and "Date Modified" file property labels.""" if filepath and filepath.is_file(): - created: dt = dt.fromtimestamp(filepath.stat().st_ctime) + created: dt = None + if platform.system() == "Windows" or platform.system() == "Darwin": + created = dt.fromtimestamp(filepath.stat().st_birthtime) # type: ignore[attr-defined] + else: + created = dt.fromtimestamp(filepath.stat().st_ctime) modified: dt = dt.fromtimestamp(filepath.stat().st_mtime) self.date_created_label.setText( f"Date Created: {dt.strftime(created, "%a, %x, %X")}"