簡體   English   中英

使用 python 將日期格式 mm/dd/yyyy hh:mm:ss AM 更改為 yyyy-mm-dd hh:mm:ss 格式

[英]change date format mm/dd/yyyy hh:mm:ss AM to yyyy-mm-dd hh:mm:ss format using python

我是 python 的新手,並嘗試將數據從 csv 文件導入 mysql 表。 唯一的問題是除了日期時間之外的所有數據都沒有導入。 我在日期字段中得到所有空值,我不知道我哪里出錯了。

for row in reader:
    print row
    try:
        (location_id, vrm, start_datetime,end_datetime,ticket_price,crap) = [x.decode('utf-8-sig') for x in row]
    except:
        print "Error with row: " % row
        #sys.exit(3)

    tmp = start_datetime.split(" ")
    start_date = tmp[0]
    start_time = tmp[1]

    tmp = end_datetime.split(" ")
    end_date = tmp[0]
    end_time = tmp[1]

    vrm = vrm.replace(' ', '')
    vrm = vrm.upper()

    tmp = start_date.split('/')
    tmp = end_date.split('/')

    SessionCost = float(ticket_price)/ 100

    iso_date = "%s-%s-%s" %(tmp[0],tmp[1],tmp[2])
    entryDatetime = "%s " % iso_date
    expiryDatetime = "%s " % iso_date
    sql_local = """INSERT INTO customer_1.pay_and_display
        (plate, machine_id, ticket_datetime, expiry_datetime, ticket_name, ticket_price)
        VALUES ("%s", "%s", "%s", "%s", "%s", "%s") """ % (vrm, location_id, start_datetime, 
        end_datetime, "IPSWL",SessionCost)
    print sql_local
    cursor.execute(sql_local)

你可以使用strptime

import datetime

dt = datetime.datetime.strptime("01/23/2021 04:12:56 AM", '%m/%d/%Y %H:%M:%S %p')

print(dt) #2021-01-23 04:12:56

如果您的日期使用 12 小時制,請將%H更改為%I

另請注意,此示例中的dt是日期 object。 打印它調用它的__str__ (或者可能__repr__ )方法。 要在您的 SQL 中使用它,您可能必須這樣做str(dt)

是有關各種格式字符及其含義的信息的鏈接。

如果我正在處理的程序使用日期或時間,我喜歡復制和粘貼這個簡單的代碼塊。 “時間”變量是當前的日期時間 object ,“dtRn”變量可以輕松顯示包含日期時間的單個字符串。 鏈接到 W3Schools Python 日期時間選項

import datetime
from time import strftime, strptime

time = datetime.datetime.now()
dtRn = str(strftime("%x") + " " + strftime("%X"))

如果您對運行程序需要多長時間(從開始到結束)感興趣; 將此代碼塊的變體添加到腳本的末尾,並從開始時間中減去結束時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM