该程序旨在要求日期为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,这意味着我的程序无法识别日期的格式.
我的数据框中有一列 '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'
我正在使用 rrule,如下所示:https ://labix.org/python-dateutil#head-470fa22b2db72000d7abe698a5783a46b0731b57
我想知道是否有可能创建一个规则,为不同的工作日指定不同的时间,例如每周星期四下午 6 点和星期六上午 10 点
希望有人可以帮助:)
我正在创建一个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
我一直在尝试将这种特定的日期格式转换为Python中的字符串,如下所示:
datetime.strptime(‘2017-01-12T14:12:06.000-0500’,'%Y-%m-%dT%H:%M:%S.%f%Z')
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我究竟做错了什么?
我想找到以天为单位的日期列表之间的差异。
我有一个 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 表达式帮助我做我想做的事,那就太好了。
我有以下日期:
Tue 19:00-20:00
Wed 04:25-15:14
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到之间的区别Tue 20:00和Wed 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)
datetime.datetime(1900, 1, 1, 20, 0)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和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)
但它显示“内部服务器错误”
我有以下数据帧:
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. 我想分组Category并Date按月汇总总金额。我想要的结果是这样的:
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)
我怎样才能做到这一点?
谢谢大家的帮助!
我在打印由字符串生成的格式化时间对象时遇到问题
这是我的代码:
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 ×10
python ×9
python-3.x ×4
datetime ×3
pandas ×3
date ×1
django ×1
flask ×1
python-2.7 ×1
rrule ×1
strptime ×1
weekday ×1