标签: python-datetime

检查字符串的格式/内容

该程序旨在要求日期为dd/mm/yyyy.然后应该检查用户是否以正确的格式(dd/mm/yyyy)输入日期.我的程序无法正确识别格式.这是我的计划:

date = (input("enter the date as dd/mm/yyyy: "))
date = day, month, year = date.split("/")
if date == (day + '/' + month + '/' + year):
    print (date)
    if len(day) == 1 or len(day) == 2:
        print("1")
    if len(month) == 1 or len(month) == 2:
        print("2")
    if len(year) == 4:
        print ("3")
else:
    if len(day) == 1 or len(day) == 2:
        print("4")
    if len(month) == 1 or len(month) == 2:
        print("5")
    if len(year) == 4:
        print ("6")        
Run Code Online (Sandbox Code Playgroud)

目前打印的数字没有其他目的,只是检查日期的有效性.到目前为止,只打印了4,5和6,这意味着我的程序无法识别日期的格式.

python date python-3.x python-datetime

1
推荐指数
1
解决办法
926
查看次数

在python pandas中将天差转换为数值

我的数据框中有一列 'datedif' 为:

  exposuredate min_exposure_date    datedif
  2014-10-08   2014-09-27           11 days
  2014-10-09   2014-09-27           12 days
  2014-09-27   2014-09-27           0 days
  2014-09-27   2014-09-27           0 days
  2014-10-22   2014-09-27           25 days

  data.exposuredate = pd.to_datetime(data.exposuredate)
  data.min_exposure_date = pd.to_datetime(data.min_exposure_date)

  data['datedif'] = ((data.exposuredate)-(data.min_exposure_date))
Run Code Online (Sandbox Code Playgroud)

列的格式为 datetime64[ns]。我想提取“datedif”字段中的天数。我找不到任何可以帮助我提取天数差异的东西。

我试过:

data['datedif_day'] = data['datedif'].dt.days
Run Code Online (Sandbox Code Playgroud)

错误:

AttributeError: 'Series' 对象没有属性 'dt'

python datetime-format python-datetime pandas

1
推荐指数
1
解决办法
8171
查看次数

python-dateutil - RRule - 不同工作日的不同时间

我正在使用 rrule,如下所示:https ://labix.org/python-dateutil#head-470fa22b2db72000d7abe698a5783a46b0731b57

我想知道是否有可能创建一个规则,为不同的工作日指定不同的时间,例如每周星期四下午 6 点和星期六上午 10 点

希望有人可以帮助:)

python rrule python-datetime python-dateutil

1
推荐指数
1
解决办法
2720
查看次数

替换“ tzinfo”,并用本地时间打印六分钟

我正在创建一个DataTimeField没有时区。不久,我将“手动”编辑此TZ,然后要求读取本地TZ的值。看到最终结果修改了六分钟!

逻辑:

>>> import datetime
>>> from django.utils import timezone
>>> test = datetime.datetime(2016, 9, 28, 10, 10, 10)
datetime.datetime(2016, 9, 28, 10, 10, 10)

>>> test = teste.replace(tzinfo=pytz.timezone('America/Sao_Paulo'))
datetime.datetime(2016, 9, 28, 10, 10, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' LMT-1 day, 20:54:00 STD>)

>>> timezone.activate(pytz.timezone('America/Sao_Paulo'))
>>> timezone.localtime(test)
datetime.datetime(2016, 9, 28, 10, 16, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRT-1 day, 21:00:00 STD>)
Run Code Online (Sandbox Code Playgroud)

注意:此想法是在两个阶段发生的。首先,我想在TimeZone创作中保持领先地位。然后,我想向用户显示用户的TimeZone。在这种情况下,两个用户都是同一地区。

对不起我的英语


遵循@ user6897474的响应并将其付诸实践,我得到了以下解决方案:

在保存之前,我要获取POST和serializabel文件的日期时间,请执行以下操作:

class CheckControllerSerializer(serializers.ModelSerializer):
    def create(self, validated_data):
        datetime = validated_data['datetime'].replace(tzinfo=None)
        validated_data['datetime'] = pytz.timezone('America/Sao_Paulo').localize(datetime)

        return super(CheckControllerSerializer, self).create(validated_data)
Run Code Online (Sandbox Code Playgroud)

替换tzinfo = None,我保证您不会遇到以下错误的问题:

不是幼稚的日期时间(已经设置了tzinfo)

django django-models python-3.x python-datetime django-timezone

1
推荐指数
1
解决办法
1052
查看次数

datetime.strptime( '2017-01-12T14:12:06.000-0500', '%Y-%间 - %的dT%H:%M:%S%F%Z')

我一直在尝试将这种特定的日期格式转换为Python中的字符串,如下所示:

datetime.strptime(‘2017-01-12T14:12:06.000-0500’,'%Y-%m-%dT%H:%M:%S.%f%Z')
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我究竟做错了什么?

python datetime strptime python-2.7 python-datetime

1
推荐指数
3
解决办法
3万
查看次数

在python中查找日期列表之间的差异

我想找到以天为单位的日期列表之间的差异。

我有一个 Timestamp 对象列表。

[Timestamp('2016-10-18 00:00:00'), Timestamp('2016-10-18 00:00:00'), Timestamp('2016-10-19 00:00:00'), Timestamp('2016-10-29 00:00:00'), Timestamp('2016-10-31 00:00:00'), Timestamp('2016-11-01 00:00:00'), Timestamp('2016-11-09 00:00:00'), Timestamp('2016-11-09 00:00:00'), Timestamp('2016-11-11 00:00:00'), Timestamp('2016-11-13 00:00:00'), Timestamp('2016-11-13 00:00:00')]
Run Code Online (Sandbox Code Playgroud)

我想要以下结果

[0,1,10,2,1,8,0,2,2,0]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但出现编译错误“TypeError: 'Timestamp' object is not iterable”

def calculateInterOrderTime(dateList):
   result = map(lambda x: [i / np.timedelta64(1, 'D') for i in np.diff([c for c in x])[0]],dateList)
   print(list(result))
Run Code Online (Sandbox Code Playgroud)

如果有人能用我的 lambda 表达式帮助我做我想做的事,那就太好了。

python python-datetime pandas

1
推荐指数
2
解决办法
1359
查看次数

具有不同工作日的两个时间戳之间的区别?

我有以下日期:

Tue 19:00-20:00
Wed 04:25-15:14
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到之间的区别Tue 20:00Wed 04:25

我试图在datetime对象中转换它,但由于我没有月份或年份的日期,两个对象将获得相同的日期:

d1 = datetime.strptime("Tue 20:00", "%a %H:%M")
d2 = datetime.strptime("Wed 04:25", "%a %H:%M")
Run Code Online (Sandbox Code Playgroud)
  • d1 是: datetime.datetime(1900, 1, 1, 20, 0)
  • d2 是: datetime.datetime(1900, 1, 1, 4, 25)

分钟的差异应该是505但在这种情况下是-935.0因为它们具有相同的日期,因此它们相差近 16 小时而不是大约 8 个半小时:

diff = (d2 - d1).total_seconds() / 60  # -935.0
Run Code Online (Sandbox Code Playgroud)

python datetime weekday python-3.x python-datetime

1
推荐指数
1
解决办法
49
查看次数

如何在python Flask中获取当前日期时间

我需要通过变量在浏览器上显示日期和时间。我只是python和flask的初学者。这是我的代码。请提出一两个想法来为我指明正确的方向。

from datetime import datetime
date = datetime.now()

from flask import Flask


app = Flask(__name__)

@app.route("/")
def home():
    return date

if __name__ == "__main__":
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

但它显示“内部服务器错误”

python flask python-3.x python-datetime

1
推荐指数
1
解决办法
1723
查看次数

如何按类别分组并按月汇总总销售额 - 熊猫

我有以下数据帧:

test = {'Date': ['2021-01-01', '2021-01-15', '2021-01-02', '2021-01-14', '2021-01-05', '2021-01-07'],
        'Category': ['Fixed', 'Fixed', 'Mindful Spending', 'Mindful Spending', 'Subscription', 'Subscription'],
       'Amount': ['5', '5', '5', '5', '5', '5']}
example = pd.DataFrame(test)
example
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我的Date列数据类型是datetime64[ns],使用pd.to_datetime. 我想分组CategoryDate按月汇总总金额。我想要的结果是这样的:

test = {'Date': ['2021-01', '2021-01', '2021-01'], 
        'Category': ['Fixed', 'Mindful Spending', 'Subscription'],
       'Amount': ['10', '10', '10']}
result = pd.DataFrame(test)
result
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我怎样才能做到这一点?

谢谢大家的帮助!

python python-datetime pandas pandas-groupby

1
推荐指数
1
解决办法
180
查看次数

时间数据“2021 年 5 月 10 日”与格式“%m %d %Y”不匹配

我在打印由字符串生成的格式化时间对象时遇到问题

这是我的代码:

date_time_str = 'May 10 2021'
date_time_obj = datetime. strptime(date_time_str, '%m %d %Y')
print("The type of the date is now", type(date_time_obj))

This is the error:
ValueError: time data 'May 10 2021' does not match format '%m %d %Y'
Run Code Online (Sandbox Code Playgroud)

python datetime python-datetime

1
推荐指数
1
解决办法
307
查看次数