1+ import dayjs from "dayjs" ;
12import sax from "sax" ;
23import stream from "stream" ;
34import { Throttle } from "stream-throttle" ;
45import log from "../log.js" ;
56import { md5 , escapeHtml , fromBase64 } from "../utils.js" ;
7+ import date_utils from "../date_utils.js" ;
68import sql from "../sql.js" ;
79import noteService from "../notes.js" ;
810import imageService from "../image.js" ;
@@ -235,6 +237,8 @@ function importEnex(taskContext: TaskContext<"importNotes">, file: File, parentN
235237
236238 function updateDates ( note : BNote , utcDateCreated ?: string , utcDateModified ?: string ) {
237239 // it's difficult to force custom dateCreated and dateModified to Note entity, so we do it post-creation with SQL
240+ const dateCreated = formatDateTimeToLocalDbFormat ( utcDateCreated , false ) ;
241+ const dateModified = formatDateTimeToLocalDbFormat ( utcDateModified , false ) ;
238242 sql . execute (
239243 `
240244 UPDATE notes
@@ -243,7 +247,7 @@ function importEnex(taskContext: TaskContext<"importNotes">, file: File, parentN
243247 dateModified = ?,
244248 utcDateModified = ?
245249 WHERE noteId = ?` ,
246- [ utcDateCreated , utcDateCreated , utcDateModified , utcDateModified , note . noteId ]
250+ [ dateCreated , utcDateCreated , dateModified , utcDateModified , note . noteId ]
247251 ) ;
248252
249253 sql . execute (
@@ -407,4 +411,21 @@ function importEnex(taskContext: TaskContext<"importNotes">, file: File, parentN
407411 } ) ;
408412}
409413
414+ function formatDateTimeToLocalDbFormat (
415+ utcDateFromEnex : Date | string | null | undefined ,
416+ keepUtc : boolean
417+ ) : string | undefined {
418+ if ( ! utcDateFromEnex ) {
419+ return undefined ;
420+ }
421+
422+ const parsedDate = dayjs ( utcDateFromEnex ) ;
423+
424+ if ( ! parsedDate . isValid ( ) ) {
425+ return undefined ;
426+ }
427+
428+ return ( keepUtc ? parsedDate . utc ( ) : parsedDate ) . format ( date_utils . LOCAL_DATETIME_FORMAT ) ;
429+ }
430+
410431export default { importEnex } ;
0 commit comments