桌面应用【免费下载链接】QOwnNotesQOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.项目地址https://gitcode.com/gh_mirrors/qo/QOwnNotes点击查看免费下载QOwnNotes 允许你在笔记中随时插入当前时间并且默认提供了随系统区域自动变化的短日期格式如果你希望输出自己定制的日期时间文本可以在编辑器设置中填写一段自定义时间格式字符串。本文完整讲解 QOwnNotes 中所有可用的日期与时间格式表达式、常见组合示例并结合仓库源码说明这一功能从设置存储到文本插入的完整实现链路帮助你按需生成21.05.2001 14:13这类任意形态的时间戳。功能入口与配置位置在 QOwnNotes 中插入当前时间对应的界面动作是Insert current time快捷键CtrlT定义于 src/mainwindow.ui#L1817-L1828并挂载在“插入”工具栏_insertingToolbar中见 src/mainwindow.cpp#L1649。自定义格式字符串的配置位置为笔记Note菜单 设置Settings 编辑器EditorInsert current time分组在该分组中有一个Time format:单行输入框QLineEdit控件名为timeFormatLineEdit占位提示文本为Enter your custom time format, like dd.MM.yyyy hh:mm并且带有清空按钮clearButtonEnabledUI 定义见 src/widgets/settings/editorsettingswidget.ui#L310-L339。底层实现原理源码视角理解了配置入口之后再看该功能在源码中的实际实现可以更清楚地知道格式字符串会被如何处理设置读写格式字符串以insertTimeFormat为键保存在 QSettings 中。编辑器设置页加载时读取该键填入输入框src/widgets/settings/editorsettingswidget.cpp#L99点击 OK 保存时写回src/widgets/settings/editorsettingswidget.cpp#L154。插入动作触发“插入当前时间”动作时MainWindow::on_actionInsert_current_time_triggered()src/mainwindow.cpp#L5220-L5237执行以下步骤获取当前活动笔记的文本编辑器与光标位置调用QDateTime::currentDateTime()取得当前时刻读取insertTimeFormat设置若格式为空则回退为系统区域设置的短日期格式locale.toString(dateTime.date(), QLocale::FormatType::ShortFormat)若格式非空则使用locale.toString(dateTime, format)按自定义格式格式化最后c.insertText(text)把结果插入光标处。由此可见格式字符串遵循 Qt 的QDateTime::toString()/QLocale::toString()语法各表达式的具体含义见下文两节表格并且最终渲染时会使用系统区域设置QLocale::system()——这正是ddd、MMMM等表达式会输出本地化星期名、月份名的原因。日期格式表达式下表为所有可用于日期部分的格式表达式与 QOwnNotes 官方文档一致表达式输出结果d不带前导零的日1–31dd带前导零的日01–31ddd本地化的星期缩写名例如pon.–niedz.dddd本地化的完整星期名例如poniedziałek–niedzielaM不带前导零的月份1–12MM带前导零的月份01–12MMM本地化的月份缩写名例如sty.–gru.MMMM本地化的完整月份名例如styczeń–grudzieńyy两位数字年份00–99yyyy四位数字年份注意M与m含义不同M系列用于月份m系列用于分钟格式表达式区分大小写写错大小写会得到完全不同的输出。时间格式表达式下表为所有可用于时间部分的格式表达式表达式输出结果h不带前导零的小时24 小时制为 0–2312 小时制下为 1–12hh带前导零的小时24 小时制为 00–2312 小时制下为 01–12H不带前导零的小时0–23始终为 24 小时制HH带前导零的小时00–23始终为 24 小时制m不带前导零的分钟0–59mm带前导零的分钟00–59s不带前导零的秒0–59ss带前导零的秒00–59z不带前导零的毫秒0–999zzz带前导零的毫秒000–999AP或A12 小时制下的 AM/PM 指示A/AP会被替换为AM或PMap或a12 小时制下的 am/pm 指示a/ap会被替换为am或pmt时区缩写例如CEST使用建议需要 24 小时制时优先使用H/HH避免 12 小时制带来的 1–12 与 0–23 歧义毫秒通常与ss/zzz搭配用于时间戳型记录普通笔记场景很少用到AP/ap需与 12 小时制的小时表达式h/hh配合才有意义。官方示例格式串QOwnNotes 官方文档给出的可直接套用的示例组合如下格式结果dd.MM.yyyy hh:mm21.05.2001 14:13dd.MM.yyyy21.05.2001ddd MMMM d yywt. maj 21 01hh:mm:ss.zzz14:13:09.042h:m:s ap2:13:9 pm以上示例中ddd MMMM d yy输出wt. maj 21 01即星期缩写、完整月份名、日与两位年份的混合展示了本地化名称如何融入格式串hh:mm:ss.zzz常用于需要毫秒级精度的时间戳。基于上述表达式表还可以自行组合出更多实用格式例如yyyy-MM-dd HH:mm:ss→ ISO 风格时间戳如2001-05-21 14:13:09dddd, dd MMMM yyyy→ 完整本地化长日期如poniedziałek, 21 maj 2001yyyyMMdd-HHmmss→ 适合写入文件名的紧凑时间戳。关于更多复杂输出需求如果需要在插入当前时间时进行更复杂的处理例如插入相对日期、自动计算某个偏移、按笔记类型切换格式内置的固定格式字符串无法满足QOwnNotes 官方文档建议改用自定义动作custom action通过脚本调用registerCustomAction()注册一个菜单项并在回调中按需拼接任意文本再插入笔记。脚本接口说明见 webpage/src/pl/scripting/methods-and-objects.md 中的 “Rejestrowanie akcji niestandardowej” 一节底层 C 实现见 src/services/scriptingservice.cpp#L1833-L1857其签名支持菜单文本、按钮文本、图标以及是否出现在笔记编辑区右键菜单等参数。小结QOwnNotes 的“插入当前时间”是一个小而实用的功能insertTimeFormat设置项 QLocale::toString()的实现方式让它既能输出任意形态的日期时间文本又能自动贴合系统区域的语言习惯。掌握上文的日期、时间表达式表与组合示例你便可以在编辑器设置中一行配置随时向笔记写入符合自己习惯的时间戳。如需查阅更多细节可继续阅读仓库内该文档的其他语言版本如 webpage/src/de/editor/time-formats.md、webpage/src/fr/editor/time-formats.md、webpage/src/zh_CN 对应目录 下的 editor 子目录以及 Qt 官方对QDateTime::toString()格式语法的完整说明。赞分享桌面应用【免费下载链接】QOwnNotesQOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.项目地址https://gitcode.com/gh_mirrors/qo/QOwnNotes点击查看免费下载相关推荐QOwnNotes 时间格式完全指南自定义插入当前时间的日期与时间格式化QOwnNotes 时间格式完全指南自定义插入当前时间的日期与时间格式化 在 QOwnNotes 中你可以在笔记里插入当前时间并且可以完全自定义插入的桌面应用QOwnNotes 时间格式完全指南自定义“插入当前时间”的时间格式QOwnNotes 时间格式完全指南自定义“插入当前时间”的时间格式 本指南详解 QOwnNotes 编辑器中的“插入当前时间”功能如何通过自定义时间格式字桌面应用QOwnNotes 时间格式完全指南自定义插入当前时间的日期与时间表达式QOwnNotes 时间格式完全指南自定义插入当前时间的日期与时间表达式 在 QOwnNotes 中你可以通过「插入当前时间」功能快捷键 CtrlT 桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?