当前位置: 首页 > 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.lryc.cn/news/485022.html

相关文章:

  • Java线程池:ThreadPoolExecutor原理解析
  • 二叉树、哈夫曼报文大全
  • NotePad++中安装XML Tools插件
  • 聊天服务器(7)数据模块
  • VS2022编译32位OpenCV
  • WP网站如何增加文章/页面的自定义模板
  • 【Linux网络编程】简单的UDP网络程序
  • LabVIEW中坐标排序与旋转 参见附件snippet程序
  • SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型|文献速递-基于深度学习的病灶分割与数据超分辨率
  • jwt封装教程
  • postman变量和脚本功能介绍
  • 【AI新领域应用】AlphaFold 2,原子级别精度的蛋白质3D结构预测,李沐论文精读(2021Nature封面,2024诺贝尔奖)
  • Figma汉化:提升设计效率,降低沟通成本
  • 前端知识点---this的用法 , this动态绑定(Javascript)
  • web——upload-labs——第五关——大小写绕过绕过
  • String类型
  • Ubuntu24.04安装和配置Redis7.4
  • 权限相关知识
  • 【时间之外】IT人求职和创业应知【37】-AIGC私有化
  • 深入理解 source 和 sh、bash 的区别
  • k8clone二进制工具迁移k8s中的无状态应用
  • VPI photonics的一些使用经验(测相位 快速搜索)持续更新
  • DBeaver 连接 OceanBase Oracle 租户
  • QT_CONFIG宏使用
  • 力扣(leetcode)题目总结——辅助栈篇
  • 如何处理 iOS 客户端内 Webview H5 中后台播放的音视频问题
  • C++的一些模版
  • spring boot整合https协议
  • 服务器开机即占用大量内存,解决
  • Keil uvision的edition