我必须将从以下格式的软件中获取的日期时间拆分为单独的变量(年,月,日,小时,分钟,秒)
19 Nov 2015 18:45:00.000
注意:日期和时间之间有两个空格。整个日期和时间存储在单个字符串变量中。 请帮助我。
提前致谢。
答案 0 :(得分:9)
以下解决方案适合您:
import datetime
string = "19 Nov 2015 18:45:00.000"
date = datetime.datetime.strptime(string, "%d %b %Y %H:%M:%S.%f")
print date
输出将是:
2015-11-19 18:45:00
您可以使用以下方式访问所需的值:
>>> date.year
2015
>>> date.month
11
>>> date.day
19
>>> date.hour
18
>>> date.minute
45
>>> date.second
0
您可以在datetime's package documentation下查看section 8.1.7 for srtptime
function's usage。
答案 1 :(得分:7)
作为wim answer的替代方案,如果您不想安装软件包,可以这样做:
public static void updateDatabase(Connection conn) throws SQLException{
for(ArrayList<String> bookData : bookDataList){
if("newId".equalsIgnoreCase((String) bookData.get(0))){
PreparedStatement insertPS = conn.prepareStatement("INSERT INTO Book (Title, Author, Quantity) VALUES (?,?,?)");
insertPS.setString(1, bookData.get(1));
insertPS.setString(2, bookData.get(2));
insertPS.setInt(3, Integer.parseInt(bookData.get(3)));
insertPS.executeUpdate();
insertPS.close();
}else{
PreparedStatement updatePS = conn.prepareStatement("UPDATE Book SET Quantity = ? WHERE BookId = ?");
updatePS.setInt(1, Integer.parseInt(bookData.get(3)));
updatePS.setInt(2, Integer.parseInt(bookData.get(0)));
updatePS.executeUpdate();
updatePS.close();
}
}
conn.close();
}
输出:
import datetime
s = "19 Nov 2015 18:45:00.000"
d = datetime.datetime.strptime(s, "%d %b %Y %H:%M:%S.%f")
print d.year
print d.month
print d.day
print d.hour
print d.minute
print d.second
这利用strptime
来解析字符串。
答案 2 :(得分:2)
首先pip install python-dateutil
然后执行:
>>> from dateutil.parser import parse
>>> dt = parse('19 Nov 2015 18:45:00.000')
>>> dt.year
2015
>>> dt.month
11
>>> dt.day
19
>>> dt.hour
18
>>> dt.minute
45
>>> dt.second
0
答案 3 :(得分:0)
使用datetime.strptime(your_string, format)
要结合format
字符串,请参阅文档:https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
从那里,您可以轻松地get the year, month, etc.(也在文档中)
答案 4 :(得分:0)
df2['invoice_date']=pd.to_datetime(df2.invoice_date, format='%m/%d/%Y %H:%M')
df2.insert(loc=5, column='month', value=df2.invoice_date.dt.month)
# +1 to make Monday=1.....until Sunday=7
df2.insert(loc=6, column='day', value=(df2.invoice_date.dt.dayofweek)+1)
df2.insert(loc=7, column='hour', value=df2.invoice_date.dt.hour)