【问题标题】:date and time format change from American to British to include the name of the day.日期和时间格式从美式更改为英式以包含日期名称。
【发布时间】:2017-04-08 04:40:09
【问题描述】:
exam_df['started date']

以下列格式返回日期和时间

0    2016-01-29 06:56:00
1    2016-01-29 09:14:00
2    2016-01-29 11:16:00

我想改变它,让它返回

Friday 29/01/2016 06:56:00

【问题讨论】:

  • 与我们分享您的待办事项列表将无法完成。开始破解它。 :)
  • 或者换一种说法,你试过什么?什么不工作?除了“为我做这件事”之外,我们还能为您提供什么帮助?
  • 您需要组合一个更好的minimal reproducible example,以便社区给予这个问题适当的关注。事实上,它太宽泛了。此外,这是与pandas 相关的问题吗?如果是这样,您是否查看pandas 中支持的日期格式操作?
  • 参考这篇文章。 How do I ask a good question?
  • 把它放在问题中,而不是评论。

标签: python pandas datetime


【解决方案1】:

您可以先使用to_datetime() 将条目转换为日期时间对象,然后将strftime() 应用于每个条目以将其转换回所需的输出格式,如下所示:

import pandas as pd

df = pd.DataFrame(["2016-01-29 06:56:00", "2016-01-29 09:14:00", "2016-01-29 11:16:00"],  columns=['started date'])
dt = pd.to_datetime(df['started date'], format='%Y-%m-%d %H:%M:%S')
print dt.apply(lambda x: x.strftime('%A %d/%m/%Y %H:%M:%S'))

给你:

0    Friday 29/01/2016 06:56:00
1    Friday 29/01/2016 09:14:00
2    Friday 29/01/2016 11:16:00

这利用了strftime() 格式化规则,如下所示:

%Y - 年份,世纪作为十进制数字。
%m - 月份作为零填充十进制数字。
%d - 月份中的日期,作为零填充十进制数字。
%H - 小时(24 小时制)作为零填充十进制数。
%M - 分钟作为零填充十进制数。
%S - 秒作为零 -填充的十进制数字。
%A - 工作日作为区域设置的全名。

【讨论】:

  • @john,希望这能满足您的需求吗?不要忘记,当您对某个问题的任何解决方案感到满意时,请单击赞成/反对票下的灰色勾号以接受它作为解决方案......您还将获得一个学者徽章。
【解决方案2】:

这是一个有用的javaScript函数

function usToBr (n:String) {
    var aDt=n.split(' ')
    aDt[0]=aDt[0].split('-')
    var _date:Date = new Date((aDt[0][0]), (aDt[0][1])-1, (aDt[0][2]));
    var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

    var day_str:String = dayOfWeek_array[_date.getDay()];
    return day_str+' '+aDt[0][2]+'/'+aDt[0][1]+'/'+aDt[0][0]+' '+aDt[1];
}

【讨论】:

  • 为什么这对标有 Python 而不是 JS 的问题有用?
  • 你们为什么提供javascript解决方案?这有什么帮助?
  • 哦,我没看到 Python
猜你喜欢
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
相关资源
最近更新 更多