簡體   English   中英

更改日期格式在Django

[英]change date format in django

我正在嘗試在Django中使用 eventCalendar,它以以下格式保存和顯示日期:

2012-02-27T13:15:00.000+10:00

但是,當我將事件保存在數據庫中時,事件將以以下格式保存:

Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)

因此由於這種格式,數據庫中的事件將不會出現在日歷上。 如何轉換這種格式? 我嘗試過這樣的事情:

datetime.strptime(mydatetime, "%Y-%m-%dT%H:%M:%S+0000")

但是我反復遇到這樣的錯誤:

'module' object has no attribute 'strptime'

編輯:日期為字符串格式

strptime用於將字符串解析為datetime對象。 格式字符串表示如何解析該字符串, 而不是您希望日期時間以后作為字符串打印時采用的格式。 因此,首先需要使格式字符串與輸入字符串的日期格式匹配。

strptime獲得日期時間strptime ,便可以將strftime與當前的格式字符串一起使用,以將其帶入所需的顯示中。

也就是說,看來您的進口商品有問題。 該錯誤似乎表明您已完成:

import datetime
datetime.strptime(...)

不對 strptimestrftimedatetime.datetime關閉方法,因此您需要像以下那樣修改導入:

from datetime import datetime

或者, strptime的調用修改為:

datetime.datetime.strptime(...)

UPDATE

您將從類似Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)的字符串開始。 Python非常出色,但並非無所不知。 如果要將其轉換為datetime ,則必須告訴它如何 這就是傳遞給strptime的格式字符串的目的。 您需要創建一個格式字符串,該格式字符串表示數據庫中表示的當前字符串日期和時間(練習留給讀者)。 反過來考慮,您想要實際代表這樣的datetime ,您將如何去做。

這將使您獲得datetime 從那里,您現在可以使用strftime將該datetime格式化為字符串,這次傳遞您想要的實際格式。

因此,過程為:

  1. 從數據庫創建一個表示您當前字符串的格式字符串
  2. 使用該格式字符串作為strptime的參數以獲取datetime
  3. 創建一個格式字符串,表示您希望日期使用的格式(已完成)
  4. 使用該格式字符串作為strftime的參數,以將步驟2中的datetime時間轉換為所需的字符串。

暫無
暫無

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

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