From 00c0c14e037339f35bdbc86a6cbf7e9b153aa2b1 Mon Sep 17 00:00:00 2001 From: jonathang4 Date: Thu, 5 Jun 2025 16:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=B6=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/api/VideoTaskCache.ts | 6 ++++-- src/daemon.ts | 6 ++++-- src/lib/logger.ts | 10 ++++++---- src/lib/util.ts | 6 ++++-- yarn.lock | 7 ++++++- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index e2227e3..fbfd3c8 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "crc-32": "^1.2.2", "cron": "^3.1.6", "date-fns": "^3.3.1", + "date-fns-tz": "^3.2.0", "eventsource-parser": "^1.1.2", "form-data": "^4.0.0", "fs-extra": "^11.2.0", diff --git a/src/api/VideoTaskCache.ts b/src/api/VideoTaskCache.ts index a808242..d20b81a 100644 --- a/src/api/VideoTaskCache.ts +++ b/src/api/VideoTaskCache.ts @@ -1,12 +1,14 @@ import fs from 'fs-extra'; import path from 'path'; -import { format as dateFormat } from 'date-fns'; +// import { format as dateFormat } from 'date-fns'; +const timeZone = 'Asia/Shanghai'; // Beijing Time +import { formatInTimeZone } from 'date-fns-tz'; const LOG_PATH = path.resolve("./logs/video_task_cache.log"); function cacheLog(value: string, color?: string) { try { - const head = `[VideoTaskCache][${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")}] `; + const head = `[VideoTaskCache][${formatInTimeZone(new Date(),timeZone, "yyyy-MM-dd HH:mm:ss.SSS")}] `; value = head + value; // console.log(color ? value[color] : value); fs.ensureDirSync(path.dirname(LOG_PATH)); diff --git a/src/daemon.ts b/src/daemon.ts index c64d325..45d59a2 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -7,7 +7,9 @@ import path from 'path'; import { spawn } from 'child_process'; import fs from 'fs-extra'; -import { format as dateFormat } from 'date-fns'; +// import { format as dateFormat } from 'date-fns'; +const timeZone = 'Asia/Shanghai'; // Beijing Time +import { formatInTimeZone } from 'date-fns-tz'; import 'colors'; import { VideoTaskCache } from '@/api/VideoTaskCache.ts'; @@ -22,7 +24,7 @@ let currentProcess; //当前运行进程 */ function daemonLog(value, color?: string) { try { - const head = `[daemon][${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")}] `; + const head = `[daemon][${formatInTimeZone(new Date(), timeZone, "yyyy-MM-dd HH:mm:ss.SSS")}] `; value = head + value; console.log(color ? value[color] : value); fs.ensureDirSync(path.dirname(LOG_PATH)); diff --git a/src/lib/logger.ts b/src/lib/logger.ts index 32cb3a6..afdc23a 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -4,7 +4,9 @@ import _util from 'util'; import 'colors'; import _ from 'lodash'; import fs from 'fs-extra'; -import { format as dateFormat } from 'date-fns'; +// import { format as dateFormat } from 'date-fns'; +const timeZone = 'Asia/Shanghai'; // Beijing Time +import { formatInTimeZone } from 'date-fns-tz'; import config from './config.ts'; import util from './util.ts'; @@ -89,7 +91,7 @@ class LogText { } toString() { - return `[${dateFormat(this.time, "yyyy-MM-dd HH:mm:ss.SSS")}][${this.level}][${this.source.name}<${this.source.codeLine},${this.source.codeColumn}>] ${this.text}`; + return `[${formatInTimeZone(this.time, timeZone, "yyyy-MM-dd HH:mm:ss.SSS")}][${this.level}][${this.source.name}<${this.source.codeLine},${this.source.codeColumn}>] ${this.text}`; } } @@ -124,12 +126,12 @@ class Logger { } header() { - this.#writer.writeSync(Buffer.from(`\n\n===================== LOG START ${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); + this.#writer.writeSync(Buffer.from(`\n\n===================== LOG START ${formatInTimeZone(new Date(), timeZone, "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); } footer() { this.#writer.flush(); //将未写入文件的日志缓存写入 - this.#writer.writeSync(Buffer.from(`\n\n===================== LOG END ${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); + this.#writer.writeSync(Buffer.from(`\n\n===================== LOG END ${formatInTimeZone(new Date(), timeZone, "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); } success(...params) { diff --git a/src/lib/util.ts b/src/lib/util.ts index 0f3fd16..a46e820 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -8,7 +8,9 @@ import mime from "mime"; import axios from "axios"; import fs from "fs-extra"; import { v1 as uuid } from "uuid"; -import { format as dateFormat } from "date-fns"; +// import { format as dateFormat } from "date-fns"; +const timeZone = 'Asia/Shanghai'; // Beijing Time +import { formatInTimeZone } from 'date-fns-tz'; import CRC32 from "crc-32"; import randomstring from "randomstring"; import _ from "lodash"; @@ -75,7 +77,7 @@ const util = { }, getDateString(format = "yyyy-MM-dd", date = new Date()) { - return dateFormat(date, format); + return formatInTimeZone(date, timeZone, format); }, getIPAddressesByIPv4(): string[] { diff --git a/yarn.lock b/yarn.lock index 5f9a56a..a8cf435 100644 --- a/yarn.lock +++ b/yarn.lock @@ -370,7 +370,12 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -date-fns@^3.3.1: +date-fns-tz@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/date-fns-tz/-/date-fns-tz-3.2.0.tgz" + integrity sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ== + +"date-fns@^3.0.0 || ^4.0.0", date-fns@^3.3.1: version "3.6.0" resolved "https://registry.npmmirror.com/date-fns/-/date-fns-3.6.0.tgz" integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==