【问题标题】:How to change month format for ls -l custom command如何更改 ls -l 自定义命令的月份格式
【发布时间】:2019-04-17 18:41:27
【问题描述】:

当你发出这个命令时:

find ok/ -exec ls -l -d {} \;

终端显示:

drwxrwxrwx 2 alexia alexia 4096 8 oct.  15 22:31 ok/

我尝试用自己的 find 命令对 stat.h 做同样的事情:

[...] //Other file information
struct stat fileStat;
stat(path,&fileStat)
char buffer[20];
struct tm *time
time = localtime(&(fileStat.st_mtime));
strftime(buffer, 20, "%b %e  %Y", time);
printf("%s", buffer);

它会显示:

[...]
8 Oct  15 22:31 ok/

月份格式不好,不知道怎么弄好。

干杯

【问题讨论】:

  • 你设置了语言环境吗?默认情况下,它适用于 C 语言环境。也许setlocale(LC_TIME, “”);?否则,您可以将点添加到格式字符串中,但这不能解决缩写的情况。
  • 有效!谢谢!
  • @user3592221:当你收到一个有用的问题答案时,你应该accept这个答案,这样其他人就知道它不再需要回答了。

标签: c stat localtime


【解决方案1】:

默认情况下,C 程序使用 C 语言环境运行。看起来您想要一个不同的语言环境,所以将setlocale() 函数与另一个语言环境一起使用。最简单的是由空字符串指定。 (语言环境的“C”值指定了 C 翻译的最小环境;语言环境的“”值指定了特定于语言环境的本地环境。其他实现定义的字符串可以作为第二个参数传递给 setlocale。 ):

setlocale(LC_TIME, “”);

这只影响时间;你可以使用LC_ALL 来改变一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    相关资源
    最近更新 更多