当前位置: 首页 > news >正文

Emacs进阶之插入时间信息(一百六十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2. Emacs之时间获取介绍
      • 内部时间表示
      • 主要函数
      • 时间精度与限制
      • 应用场景
    • 🌻3. 代码实例
      • 🐓3.1 直接插入当前时间
      • 🐓3.2 只插入当前日期
      • 🐓3.3 自定义格式

🌻1.前言

本篇目的:Emacs进阶之插入时间信息
需求:在代码调试时,有时候暂时中断,可以记录一个时间,下次继续Debug…

🌻2. Emacs之时间获取介绍

Emacs 是一款强大的文本编辑器,不仅可以编辑文本,还内置了丰富的时间和日期处理功能。Emacs 使用 Lisp 语言实现,其时间计算方式主要基于两种内部表示法:时间戳(timestamp)秒数列表(time value list)

内部时间表示

  1. 时间戳(timestamp)

    • 这是 Emacs 时间的基本单位,表示从 Unix 纪元(1970年1月1日)到当前时间的秒数。
    • 通过函数 current-time,可以获得当前时间的内部表示值,例如 '(HIGH LOW USEC PSEC),其中:
      • HIGHLOW 组成一个 64 位整数,表示自纪元起的秒数。
      • USEC 是微秒部分,PSEC 是皮秒部分(通常为 0)。
  2. 时间差表示(time value list)

    • 时间可以表示为秒和纳秒的列表形式:(SECONDS . NANOSECONDS)
    • 例如,通过函数 time-addtime-subtract 可以计算时间差。

主要函数

  1. 获取当前时间

    • current-time: 返回当前时间的内部格式值。
    • current-time-string: 返回可读格式时间字符串,如 "Fri Nov 15 14:35:00 2024"
  2. 格式化时间

    • format-time-string 是 Emacs 中的核心函数,用于将时间格式化为字符串。
      (format-time-string "%Y-%m-%d %H:%M:%S")
      
      输出示例:"2024-11-15 14:35:00"
  3. 时间计算

    • time-add:计算时间加法。
    • time-subtract:计算两个时间之间的差值。
    • 例如:
      (time-add (current-time) (seconds-to-time 3600)) ; 当前时间加 1 小时
      
  4. 转换时间格式

    • encode-time:将年月日时分秒转换为内部时间。
    • decode-time:将内部时间转换为可读的分解值(如年月日、时分秒等)。

时间精度与限制

  • Emacs 支持微秒精度,时间计算非常准确。
  • 由于 Emacs 内部时间表示基于 64 位整数,因此支持的时间范围非常广,可处理从公元前到数千年后的时间。

应用场景

Emacs 的时间计算功能可用于编程任务调度、日志管理、文件时间戳处理等,例如自动插入时间戳到文档,或者计算特定事件的时间差。

🌻3. 代码实例

🐓3.1 直接插入当前时间

  • 格式:YYYY-MM-DD HH:MM:SS
(defun insert-current-date-time ()"Insert the current date and time in 'YYYY-MM-DD HH:MM:SS' format."(interactive)(insert (format-time-string "%Y-%m-%d %H:%M:%S")))

解释:
[format-time-string “%Y-%m-%d %H:%M:%S”] 格式化时间为:YYYY-MM-DD HH:MM:SS

🐓3.2 只插入当前日期

  • 格式:YYYY-MM-DD
(defun insert-current-date ()"Insert the current date in 'YYYY-MM-DD' format."(interactive)(insert (format-time-string "%Y-%m-%d")))

🐓3.3 自定义格式

  • 格式:YYYY年MM月DD日 HH时MM分SS秒
(defun insert-custom-date-time ()"Insert the current date and time in 'YYYY年MM月DD日 HH时MM分SS秒' format."(interactive)(insert (format-time-string "Last Debug Time:%Y年%m月%d日 %H时%M分%S秒")))

http://www.mrgr.cn/news/76437.html

相关文章:

  • 【微服务设计】分布式系统一致性:深入解析2PC(两阶段提交)和TCC的优势与劣势
  • HTML面试题(2)
  • SRIO RapidIO 笔记
  • DHTMLX-gantt组件显示不同的颜色
  • Thinkphp6视图介绍
  • linux startup.sh shutdown.sh (kkFileView)
  • Android笔记(三十七):封装一个RecyclerView Item曝光工具——用于埋点上报
  • 微服务即时通讯系统的实现(客户端)----(1)
  • TCP连接秘籍:三次握手建立连接,四次挥手优雅告别
  • 8 软件项目管理
  • 狼蛛F87Pro键盘常用快捷键的使用说明
  • 麒麟kysec安全
  • 数据仓库面试题集离线实时
  • [JAVA]MyBatis环境配置介绍
  • 将已有的MySQL8.0单机架构变成主从复制架构
  • 【AI图像生成网站Golang】项目介绍
  • 2024数证杯电子取证比赛题目(初赛)
  • 1链式有序表的合并
  • 【提高篇】3.4 GPIO(四,工作模式详解 下)
  • [Linux]:Reactor模式
  • 牛客题库 21738 牛牛与数组
  • C语言数据结构与算法--简单实现队列的入队和出队
  • AVL树了解并简单实现
  • Linux网络编程
  • InternVL 多模态模型部署微调实践 | 书生大模型
  • 系统架构师考试18天极限备考复盘(2024年11月)