Problem mit kMDItemContentCreationDate >

Hallo Ihr Lieben!

Ich nutze gerne den intelligenten Ordner, sodass ich meine Kriterien sehr gut erstellen kann,

Nach Sichern und Öffnern der Information, kopiere ich diesen Inhalt

Dieser Inhalt wird ergänzt mit CMD=“/usr/bin/mdfind ‘ Inhalt ‘“

Das funktioniert im Allgemeinen recht gut!

ABER.

Mein Problem, ich komme nicht weiter mit den CalendarWindow.

Ich möchte ein Zeitfenster setzen

Mein Code:
var von,bis,zeitfenster as integer

var cmd as string

#PRAGMA Unused Index

mSelectedDate = New DateTime(mSelectedDate.Year, mSelectedDate.Month, Val(Me.Caption))

Var gewählt As New DateTime(mSelectedDate.Year, mSelectedDate.Month, Val(Me.Caption))

zeitfenster=86400 '1 tag

von=gewählt.SecondsFrom1970 ’ 1.564.610.400

bis=von+zeitfenster

cmd="/usr/bin/mdfind '((kMDItemContentCreationDate > “+str(von)+”) && (kMDItemContentCreationDate < “+str(bis)+”) && (kMDItemPhysicalSize > 1000000) && ((_kMDItemGroupId = 13) || (_kMDItemGroupId = 7)))’”

Obwohl der DateTimer stimmt, zeigt mit gewählt.SecondsFrom1970 ‘1.564.610.400 komplett grössere werte an?

Die Kopie vom Intelligente Order:

((kMDItemContentCreationDate > 586389600) && (kMDItemContentCreationDate < 586476000) && (kMDItemPhysicalSize > 1000000) && ((_kMDItemGroupId = 13) || (_kMDItemGroupId = 7)))

Das funktioniert im Terminal sehr gut

Ich bin davon ausgegangen, das die Sekunden von 1970 bis heute permanent gespeichert werden.

Wie kommt diese Differenz zustande?

Ich habe es mal wieder zu einfach gemacht !!!

Für Eure Hilfe bin ich immer wieder sehr dankbar!

Micha D.

Leider verstehe ich aus Deinem Text nicht wirklich wo Dein Problem liegt.

Einen Hinweis habe ich trotzdem:

kMDItemContentCreationDate liefert immer GMT zurück.

Der Finder liefert immer GMT + die eingestellte Zeitzone zurück. Für Deutschland ergibt das somit akutell eine Differenz von 7.200 Sekunden.

Ansonsten: Kannst Du genauer erklären, zwischen welchen Werten Du eine Differenz bekommst?

Ich würde mal “mSelectedDate.” im Code durch Konstanten ersetzen. Vielleicht ist da was wurmig…
Mit “date -r” kann man im Terminal prüfen, welchem Datum die Sekunden entsprechen:

% date -r 586389600
Mo  1 Aug 1988 00:00:00 CEST
% date -r 586476000
Di  2 Aug 1988 00:00:00 CEST
% date -r 1564610400  
Do  1 Aug 2019 00:00:00 CEST

Vielleicht gibt das einen Hinweis auf die Fehlerursache…

Hallo Ihr Beiden!
Zu Wolfgang:
Also das Delta ist 1.564.610.400 zu 586389600

zu TomE
Klingt interessant, aber ich bin nicht so im Terminal bewandert.

Deshalb:
nutze ich nur noch:

cmd=“mdfind ‘kMDItemFSCreationDate >= $time.iso(2021-11-01T00:00:00) && kMDItemFSCreationDate <= $time.iso(2024-11-30T23:59:59) && (kMDItemPhysicalSize > 1000000) && ((_kMDItemGroupId = 13) || (_kMDItemGroupId = 7)))’”

Das läuft auch sehr gut
Also nochmals ganz lieben Dank für Mühe.