Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中指定时间戳的格式_Python_Datetime_Timestamp - Fatal编程技术网

如何在python中指定时间戳的格式

如何在python中指定时间戳的格式,python,datetime,timestamp,Python,Datetime,Timestamp,我有一个数据框,日期是字符串格式的。我将这些日期转换为时间戳,以便在代码的后面部分使用此日期列。计算/比较等一切正常,但我希望时间戳以%d.%m.%Y格式显示,而不是默认的%Y-%m-%d格式。让我举例说明- dt=pd.DataFrame({'date':['09.12.1998','07.04.2014']},index=[1,2]) dt Out[4]: date 1 09.12.1998 2 07.04.2014 dt['date_1']=pd.to_datet

我有一个数据框,日期是字符串格式的。我将这些日期转换为时间戳,以便在代码的后面部分使用此日期列。计算/比较等一切正常,但我希望时间戳以%d.%m.%Y格式显示,而不是默认的%Y-%m-%d格式。让我举例说明-

dt=pd.DataFrame({'date':['09.12.1998','07.04.2014']},index=[1,2])
dt
Out[4]: 
         date
1  09.12.1998
2  07.04.2014

dt['date_1']=pd.to_datetime(dt['date'],format='%d.%m.%Y')

dt
Out[7]: 
         date     date_1
1  09.12.1998 1998-12-09
2  07.04.2014 2014-04-07
我希望以与
dt['date']
相同的格式取消显示
dt['date']
。我不希望使用
.strftime()
函数,因为它会将数据类型从时间戳转换为字符串

简而言之:我如何调用python系统以我选择的格式显示时间戳(月份可能像APR、MAY等),而不是获取默认格式(像1998-12-09),记住数据类型仍然是时间戳,而不是字符串?

看一看,您可以设置显示以实现其中的一部分,尽管不是全部

display.date\u dayfirst
如果为True,则打印并解析日期,例如2005年1月20日

display.date\u yearfirst
如果为True,则打印并解析第一年的日期,例如2005/01/20

所以你可以有dayfirst,但是他们已经好几个月没有名字了

在更基本的层面上,无论何时显示某个内容,它都是一个字符串,对吗?我不知道为什么在显示时不必更改原始数据帧就无法转换它


您的代码是:

pd.set_option("display.date_dayfirst", True)

但实际上这不起作用:


这些选项已用于解析,但未用于显示。

熊猫似乎尚未实现此选项:

你好,斯塔尔/塞扎/卓拉夫,感谢大家提供的意见。我珍惜你的时间,非常感谢你的帮助。谢谢分享这个链接。我浏览了这个链接,了解到这个问题最终可以分解为“显示问题”,正如jreback所阐述的那样。本期将日期显示为所需格式已标记为增强功能,因此可能会添加到未来版本中

我想要的只是将日期导出为
dd-mm-yyy
,在导出时只需格式化字符串,就可以解决这个问题。 因此,我通过将文件导出为-

dt.to\u csv(文件名、日期格式=“%d-%m-%Y”,索引=False)

因此,这个问题得到了解决


再次感谢你们所有人的善意帮助和在这个问题上花费的宝贵时间。非常感谢。

如果您明确不想使用strftime也许您必须编写自己的方法以自定义格式显示日期,但它必须是字符串。我不确定我是否真的理解您的具体要求,但是否可以执行
打印(datetime.datetime.fromtimestamp(“yourtimestamp”).strftime(“%d.%m.%Y”)
?这只会将时间戳显示为日期。这正是我不想要的。我不想打扰数据类型。所以,我只是想知道是否存在一个隐式方法来预先指定显示格式。@OliverS,但对象将保持不变。从技术上讲,我认为python将创建一个包含字符串的新对象(打印数据帧时就是这样),然后显示该对象。基础数据帧不会被更改。数据类型不存在任何问题。如果要以自定义格式打印datetime对象,它必须是字符串。编写您自己的类,指定如何在
\uuuu str\uuu
方法中打印日期,并在打印变量时调用它。您好,很抱歉,它不起作用。我尝试了各种排列方式,但都没有用。dt['date\u 1']=pd.to\u datetime(dt['date'],格式='%d.%m.%Y',dayfirst=True)。。。。。。我也为你做了陈述。但是没有帮助。非常感谢你自己的帮助:)哦,我明白了。可能就是这样。谢谢你分享这个链接。我希望在花2个小时在谷歌上之前看到你的答案!谢谢Stael和Droravr。非常感谢:)
    date     date_1
09.12.1998 09-12-1998
07.04.2014 07-04-2014