日期时间在python中分割

时间:2015-11-19 17:52:01

标签: python python-2.7

我必须将从以下格式的软件中获取的日期时间拆分为单独的变量(年,月,日,小时,分钟,秒)

19 Nov 2015  18:45:00.000

注意:日期和时间之间有两个空格。整个日期和时间存储在单个字符串变量中。 请帮助我。

提前致谢。

5 个答案:

答案 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)