0

ずっと前に、別のユーザーが、ヒットリストからデータを直接読み取るためにライブラリに取り組んでいると書いていました

https://groups.google.com/d/msg/the-hit-list-users/arCPzjHaZeg/J6eatDiJWB4J

彼がこれまでに何かをリリースしたようには見えません。

geektoolスクリプトで使用するために、THLのライブラリを直接読み取ることを検討していました。これは、データを読み取るために常にTHLを起動する必要があるapplescriptのオーバーヘッドを回避するためです。

まだ完了していないタスクを見つけることで、私は途中で得ました

SELECT * FROM ZTASK where ZCOMPLETEDDATE is NULL ;

しかし、現在期限が切れているタスクのみに制限しようとすると、混乱します。タスクスキーマを見ると、ZDUEDATEがタイムスタンプであることがわかります

sqlite> .schema ztask

CREATE TABLE ZTASK(Z_PK INTEGER PRIMARY KEY、Z_ENT INTEGER、Z_OPT INTEGER、ZARCHIVED INTEGER、ZPRIORITY INTEGER、ZNOTES INTEGER、ZPARENTLIST INTEGER、ZPARENTTASK INTEGER、ZRECURRENCE INTEGER、ZACTUALTIME FLOAT、ZCOMPLETEDDATE DATE 、ZMODIFIEDDATE TIMESTAMP、ZSTARTDATE TIMESTAMP、ZCALENDARSTOREUID VARCHAR、ZNOTESUID VARCHAR、ZSTATUS VARCHAR、ZTITLE VARCHAR、ZUID VARCHAR、ZLOCALINFODICTIONARY BLOB);

クエリを実行しようとすると、それがどのようなタイムスタンプであるかがわかりません。unixtimeまたはjuliantimeではないようです。

例えば

sqlite> SELECT * FROM ZTASK where ZCOMPLETEDDATE is NULL ;
...
ZDUEDATE = 363422378
...

ヒットリストのUIから2012-07-07の期限として表示されますが、一致していないようです

Unix time: 1341619200
Julian time: 2456115.5

他の提案はありますか?

4

2 に答える 2

3

2001年1月1日GMTからの秒数です。私はこの値を自分で選択しませんでした。これは、CoreDataとCocoaが日付を保存する方法です。

たとえば、質問の363422378の値は約11。5年になります。

363422378秒/60/60/24/365= 11.524048009

于 2012-07-09T02:49:03.903 に答える
1

これは、OSXの絶対参照日からの秒数のように見えます。

受信者とシステムの絶対参照日(2001年1月1日の最初の瞬間、GMT)の間の間隔。受信者が基準日より前の場合、値は負になります。

定数が提供されます。これは、1970年1月1日から基準日でNSTimeIntervalSince1970ある2001年1月1日までの秒数です。値は978307200.0。です。

于 2012-07-09T02:52:04.897 に答える