advice还可以把韩文换成中文的
谢谢指点。。暂觉高深。。
方法有效:+1:
我都是统一用英文
方法有效 +1
System Info
- OS: windows-nt
- Emacs: 25.2.1
- Spacemacs: 0.200.13
- Spacemacs branch: nil (rev. nil)
- Graphic display: t
- Distribution: spacemacs
- Editing style: vim
- Completion: helm
- Layers:
(setq system-time-locale "C")
设置前后,<format-time-string “%A”> 返回的是英文。
最终解决办法:
(setq system-time-locale "zh_CN.UTF-8")
我终于明白为什么
(insert (format-time-string “[%Y-%m-%d %a %T]”))
在windows上显示的 是周五
,而在macos上显示的是 Fri
了。
在macos上time format的%a
在 system-time-locale
默认为nil
时 是 Fri
。为zh_CN.UTF-8
时是五
。
我也因为中英文格式的问题,最后用%w
表示星期几,有点不直观,但统一了。
你这中文双引号能执行通过?
可以尝试以下以下的配置代码: 我对结果还挺满意。
修改前:显示的时间戳为:<2015-04-30 四>
修改后:显示的时间戳为:<2015-04-30 星期四>
#+BEGIN_SRC emacs-lisp
(setq org-time-stamp-formats '("<%Y-%m-%d %A>" . "<%Y-%m-%d %A %H:%M>"))
#+END_SRC
这问题好长寿啊…
它的根源其实是 unix 和 windows 的 c 库函数实现不一致. 在同样的 locale(zh_CN.UTF-8) 下,
strftime(buf, buf_size, "%a", &tm_now);
这个函数在 windows 上会给出 周五
, 在 linux 上则是 五
. Emacs 的 format-time-string
内部就是用这个函数格式化时间的 (实际上可能更复杂些, linux 上用的一般是 gnulib 里面的 nstrftime, 不过结论也一样).
所以说单纯把 locale 改成 zh_CN 不能解决问题. 倒是可以找找哪些 format 字符和 locale 的组合在两个平台实现一致. 比如前面提到的 format 用 “%A”, locale 用 zh_CN
, 这样在两个平台应该都是 星期x
. 或者统一用 Posix locale (也就是 “C”), 两个平台的 %a
都会统一成英文缩写.
我的使用中,在Windows10/11和Mac平台上的显示都是“星期X”,是一致的。
嗯, %A
这个是星期的全称, 看起来不同平台实现是一致的, 有问题的是 %a
这个星期的缩写.