关于org-mode里显示<周一>与<一>的问题

大家好。请教一下,我在Windows 10下,运行org-time-stamp后,插入时间的格式是<2016-11-07 周一>,但是相同的配置下ubuntu当中的Emacs相应时间却显示为<2016-11-07 一> ,而我已经将Window10 中设置了(setenv "LC_TIME" "zh_CN.UTF-8"),ubuntu 下的locale都是zh_CN.UTF-8,但一切仍然不生效。有朋友提示说是linux locale 与time命令的关系,但是我查了很久都没有得出相应答案。

请教大家,能不能让Linux下的“一”统一为“周一”?谢谢。 以下是一些查找到的代码

    ;; full week name
    (format-time-string "%A") ; "Tuesday"

    ;; abbreviated week name
    (format-time-string "%a") ; "Tue"
;;‘%a’
;;This stands for the abbreviated name of the day of week.

;;‘%A’
;;This stands for the full name of the day of week.
1 个赞

感觉会有两个问题。其一是 zh_CN 下 week 用的是“星期”,不是“周”:

~$ LC_TIME=zh_CN.UTF-8 date +"%F %A"
2016-11-07 星期一
~$ LC_TIME=en_US.UTF-8 date +"%F %A"
2016-11-07 Monday

假如一定要用“周”的话,应该需要对 locale 做更多的设置。

第二个问题是,org-mode 默认用的是简称 %a,而不是全称 %A。要用全称的话,到 org-mode 的设置(M-x customize-group org)、Manual 里找找有没有设置这个的选项。我找到一个可以显示全称、但实际内容还是简称的选项,或许有(没)用:

(setq org-display-custom-times t
      org-time-stamp-custom-formats '("<%m/%d/%y %A>" . "<%m/%d/%y %a %H:%M>"))

非常感谢您的回复。 我先贴一下ubuntu下的显示日期,回头再把windows状况的补上 终端下的

emacs的

以下是Window10 下面的日期

两者是不同平台,同样的配置,同样的25.1版本。

请教一下,怎么在windows的emacs里面设置en_US.UTF-8啊?

Tool bar => Options => Multilingual Environment => Set Language Environment The most easy way.

不行啊,有没有可以直接在init.el里面进行配置的代码啊?

M-x set-language-environment

设置过一次以后就会记住,应该不需要在init.el里面设置。

我并不知道设置成功不成功,我的目的是让mode-line里面的日期显示由中文变成英文,但是试了好久都不成功

重启emacs来生效。

重启之后也不管用,设置前后看不出变化

这个是org-mode里面显示日期。 mode-line里面的要另外设置。不是语言环境的问题。

M-x set-language-environment to English之后,org-mode里面日期显示还是中文的“周五”,没有变成英文。org-mode里面想要让“周五”变成“Fri”,要怎么操作啊?

馊主意:把系统语言设置成英文

谢谢了,我先这么用吧,以后知道了再说。

;; System locale to use for formatting time values.
(setq system-time-locale "C")         ; Make sure that the weekdays in the
                                      ; time stamps of your Org mode files and
                                      ; in the agenda appear in English.

方法来自 https://stackoverflow.com/questions/28913294/emacs-org-mode-language-of-time-stamps

4 个赞

为节约资源。接这个题下问我的问题。 看了以上回答,似乎楼主并没有找到答案。

我遇到的问题也同上。由于放在云上,因此会在不同电脑上编辑,结果涉及“星期”的地方一下出来fri,一下出来“星期五”,一下出来“五”,虽无大碍,但总感到太不专业。

请教一下有正确的解决方法。

我觉得可以分两步解决

第一步:

第二步就是给 format-time-string 加 advice,就是不知道C函数能不能加

如果不能就给org-insert-time-stamp加

将所有的周或星期变成统一的格式

算不上馊主意吧……只能算懒主意。
毕竟改改需求就能省掉好多麻烦事

看看这有没有帮助

1 个赞

谢谢楼上三位!但我没说清。。。。。我的遇到的主要困扰是:“星期”在有的电脑上出英语,在有的出中文

(另外,本论坛怎样@某人?:sweat: