如何在Nautilus / Files 3.6+列表视图中显示完整的日期和时间?

Nautilus 3.6的列表视图显示日期文件以多种方式进行修改:如果在当天修改的小时和分钟,以及在当前年份修改的月份和日期,以及在修改期间修改的年份。去年。 我希望在所有文件上一致地看到整个日期和时间(例如: Sat 20 Apr 2012 01:28:34 PM EDT )。

之前我已经设置了这个,但我无法弄清楚如何使用3.6版本。 我确实找到了这个问题,但答案不再适用于Nautilus 3.6: 如何更改Nautilus列表列中的日期格式?

我怎么能在Nautilus 3.6+中这样做?

您可以通过重新编译nautilus来获取完整日期:

 sudo apt-get build-dep nautilus sudo apt-get install quilt export QUILT_PATCHES=debian/patches apt-get source nautilus cd nautilus* quilt new 999_full_dates.patch quilt edit libnautilus-private/nautilus-column-utilities.c 

改变第77行

 "attribute", "date_modified", 

 "attribute", "date_modified_full", 

重建并安装修改后的包:

 quilt refresh fakeroot dpkg-buildpackage cd .. killall nautilus sudo dpkg -i nautilus_*.deb nautilus & 

与往常一样,每次在Ubuntu中更新nautilus时都必须执行这些步骤。

现在,对问题进行全面分析:

导致此更改的实际补丁是这样的: https : //git.gnome.org/browse/nautilus/commit/?id = 3fd9cba41e56f44ed955b28755ad03135026d021

函数nautilus_file_get_date_as_string获得额外的gboolean参数“compact” – 当为true时,返回缩写日期。

永远不会直接调用此函数 – 可以通过包装函数nautilus_file_get_string_attribute_q访问它。 此函数采用“date_modified”等属性参数。 为了适应nautilus_file_get_date_as_string的新签名,添加了一个新属性“date_modified_full”。 在此更改之后,使用文件日期字符串的nautilus中的任何代码都将获得缩写日期。

最后,更新文件属性对话框以使用“date_modified_full”属性。

因此,为了让nautilus在列表视图中显示完整日期,只需要在代码行中更改:在libnautilus-private / nautilus-column-utilities.c中,第77行从“date_modified”更改为“date_modified_full”。

稍微有用的补丁可以添加一个新的列类型,它将显示完整的日期,使其成为可选function,并且只添加10行代码。

对于那些使用trusty而不希望编译的人,我已经为修补过的鹦鹉螺设置了测试ppa。 (使用Alistair Buxton的补丁

该构建目前还包括2个bug修复补丁,1个来自可信赖的建议,1个来自utopic。

此外,有3个小补丁已经过我很长时间的测试并且没有任何问题。

  1. 打开文件夹

  2. 显示真实文件所有者名称而不是“我”

  3. 文件管理器作为启动器的名称

“日期时间”补丁我测试了一下,没有看到任何问题。 对于那些倾向于尝试的人 – 如果发现任何问题,请通过launchpad电子邮件与我联系。

可以通过listview > View> Visible Columns中的nautilus添加“Modified(full)”列,或者通过nautilus> Edit> Preferences> List Columns添加

https://launchpad.net/~mc3man/+archive/nauty-mods

阅读ppa页面了解信息以及如何在需要时轻松恢复。

这篇博文显示了一个更简单的解决方案。 它基于创建一个扩展,可以选择作为替代“修改列”。 测试低于16.04。

  1. gedit ~/.local/share/nautilus-python/extensions/longdate.py

  2. 使用此代码:

 #!/usr/bin/env python import os import urllib import datetime from gi.repository import Nautilus, GObject class ColumnExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.InfoProvider): def __init__(self): pass def get_columns(self): return (Nautilus.Column( name="NautilusPython::Longdate", attribute="longdate", label="Longdate", description="Get long date"),) def update_file_info(self, file): if file.get_uri_scheme() != 'file': return filename = urllib.unquote(file.get_uri()[7:]) statbuf = os.stat(filename) formatteddate = datetime.datetime.fromtimestamp(statbuf.st_mtime).strftime('%Y-%m-%d %H:%M:%S') file.add_string_attribute('longdate', str(formatteddate)) 
  1. chmod +x ~/.local/share/nautilus-python/extensions/longdate.py

  2. nautilus -qnautilus . 重新启动Nautilus并查看它是否正确加载了扩展程序。

  3. 在列表列首选项中选择新的“longdate”列。

结果将如下所示:

例