为啥这里要用dating而不是date呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥这里要用dating而不是date呢相关的知识,希望对你有一定的参考价值。

这是现在分词在作补充说明,一句话里只能有一个谓语动词,这句话里的是was,所以不能再出现date原型了,明白了吗?追问

date不是名词吗

追答

date是动词

在这里是追溯的意思

这句里作动词

追问

那既然是非谓语动词那为什么date不能用过去分词的形式dated呢

追答

因为这里是主动语态啊,被动语态用ed形式

追问

好的,谢谢

参考技术A 跟remain 的词性有关,用作联系动词主要接名词,形容词。。
在这里接过去分词作表语,表示主语所处的状态或已经发生的被动动作;现在分词作表语,表示正在进行的主动动作.
例如 The guests came in,but she remained sitting at the desk reading.客人们都来了,但她还坐在写字台旁读书.追问

这里的remain作名词。。

参考技术B 时间壮语从句,date from是追溯的意思,做从句呢在这 参考技术C remind doing追问

这里的remain作名词啊。。

TypeError:strptime()参数1必须是str,而不是datetime.date Python

在将日期转换为字符串时遇到问题,

print(type(from_date))
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()

我的from_date值在ini文件中,

from_date = 2018-01-01

我的TraceBack日志是,

Traceback (most recent call last):
File "Flexi_DailyToWeekly.py", line 87, in <module>
tuesday = get_data(session,from_keyspace, from_table, to_keyspace, to_table_tuesday, to_table_wednesday, to_table_thursday, to_table_friday, from_date, to_date)
File "Flexi_DailyToWeekly.py", line 11, in get_data
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d')
TypeError: strptime() argument 1 must be str, not datetime.date'

我使用了type(from_date),它将from_date作为字符串返回。

也尝试过,

from_date = datetime.datetime.strptime(str(from_date), '%Y-%m-%d').date()

仍然存在同样的错误。

根据以下答案中的建议更改了from_date,

from_date = "2018-01-01"

错误仍然存​​在,

Traceback (most recent call last):
File "Flexi_DailyToWeekly.py", line 82, in <module>
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
File "/usr/lib/python3.5/_strptime.py", line 510, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.5/_strptime.py", line 343, in _strptime
(data_string, format))
ValueError: time data '"2018-01-01"' does not match format '%Y-%m-%d'
答案

更换

from_date = 2018-01-01

from_date : 2018-01-01

在这个文件中

测试代码:

import configparser
import datetime
config = configparser.ConfigParser()
config.read('Test.ini')
print (config['DEFAULT']['date'])
from_date = config['DEFAULT']['date']
print(type(from_date))
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
print (from_date)

和Test.ini是

[DEFAULT]
date : 2018-1-1

输出是:

2018-1-1
<class 'str'>
2018-01-01
另一答案

根据docsdatetime.strptime()方法接受date_string作为第一个参数。所以,我试过这个:

import datetime
test = datetime.datetime.strptime('2018-01-01', '%Y-%m-%d').date()
print(test)
#datetime.date(2018, 1, 1)

如果我做from_date = 2018-01-01,我得到invalid token typefrom_date错误:

   from_date = 2018-01-01
   print(type(from_date))

   File "<ipython-input-7-9e5449277912>", line 2
   from_date = 2018-01-01
                      ^
   SyntaxError: invalid token

这意味着from_date必须是一个字符串。你可以使用from_date = '2018-01-01',这将工作。如果我现在检查from_date的类型,我会得到一种类string

from_date = '2018-01-01'
print(type(from_date))
#<class 'str'>

但是当我查看第一个Traceback日志时,它会引发一个TypeError。这意味着存储在from_date中的值是datetime.date类型。考虑以下:

import datetime
from_date = datetime.date(2018, 1, 1)
test = datetime.datetime.strptime(str(from_date), '%Y-%m-%d').date()
print(test)
#2018-01-01

以上是关于为啥这里要用dating而不是date呢的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不应该使用 date4j 而不是 joda java.util.Calendar 或 jsr 310?

JavaScript 的 new date() 和 date() 为啥输出不一样?

请问,as.Date(),as.POSIXct()函数都识别不了月份的英文,是为啥呀?

为啥 OleDbCommand 和 OleDbType.Date 不起作用,并且没有错误?

用date命令修改Linux系统的时间为啥无效

Java学习笔记22(Date类DateFormat类)