<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # PyQt5 日期和時間 > 原文: [http://zetcode.com/gui/pyqt5/datetime/](http://zetcode.com/gui/pyqt5/datetime/) PyQt5 教程的這一部分顯示了如何在 PyQt5 中使用日期和時間。 ## `QDate`,`QTime`,`QDateTime` PyQt5 具有`QDate`,`QDateTime`和`QTime`類,可用于日期和時間。 `QDate`是用于使用公歷中的日歷日期的類。 它具有確定日期,比較或操縱日期的方法。 `QTime`類使用時鐘時間。 它提供了比較時間,確定時間的方法以及其他各種時間操縱方法。 `QDateTime`是將`QDate`和`QTime`對象結合為一個對象的類。 ## 當前日期和時間 PyQt5 具有`currentDate()`,`currentTime()`和`currentDateTime()`方法來確定當前日期和時間。 `current_date_time.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDate, QTime, QDateTime, Qt now = QDate.currentDate() print(now.toString(Qt.ISODate)) print(now.toString(Qt.DefaultLocaleLongDate)) datetime = QDateTime.currentDateTime() print(datetime.toString()) time = QTime.currentTime() print(time.toString(Qt.DefaultLocaleLongDate)) ``` 該示例以各種格式打印當前日期,日期和時間以及時間。 ```py now = QDate.currentDate() ``` `currentDate()`方法返回當前日期。 ```py print(now.toString(Qt.ISODate)) print(now.toString(Qt.DefaultLocaleLongDate)) ``` 通過將`Qt.ISODate`和`Qt.DefaultLocaleLongDate`值傳遞給`toString()`方法,以兩種不同的格式打印日期。 ```py datetime = QDateTime.currentDateTime() ``` `currentDateTime()`返回當前日期和時間。 ```py time = QTime.currentTime() ``` 最后,`currentTime()`方法返回當前時間。 ```py $ ./current_date_time.py 2017-09-11 Monday, September 11, 2017 Mon Sep 11 12:37:45 2017 12:37:45 PM CEST ``` 這是輸出。 ## UTC 時間 我們的星球是一個球體; 它繞其軸旋轉。 地球向東旋轉,因此太陽在不同位置的不同時間升起。 地球大約每 24 小時旋轉一次。 因此,世界被劃分為 24 個時區。 在每個時區,都有一個不同的本地時間。 夏令時通常會進一步修改此本地時間。 實際需要一個全球時間。 全球時間可以避免時區和夏令時的混淆。 UTC(世界標準時間)被選為主要時間標準。 UTC 用于航空,天氣預報,飛行計劃,空中交通管制通關和地圖。 與當地時間不同,UTC 不會隨季節變化而變化。 `utc_local.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDateTime, Qt now = QDateTime.currentDateTime() print("Local datetime: ", now.toString(Qt.ISODate)) print("Universal datetime: ", now.toUTC().toString(Qt.ISODate)) print("The offset from UTC is: {0} seconds".format(now.offsetFromUtc())) ``` 該示例確定當前的通用和本地日期和時間。 ```py print("Local datetime: ", now.toString(Qt.ISODate)) ``` `currentDateTime()`方法返回表示為本地時間的當前日期和時間。 我們可以使用`toLocalTime()`將世界時轉換為當地時間。 ```py print("Universal datetime: ", now.toUTC().toString(Qt.ISODate)) ``` 我們通過日期時間對象中的`toUTC()`方法獲得了通用時間。 ```py print("The offset from UTC is: {0} seconds".format(now.offsetFromUtc())) ``` `offsetFromUtc()`以秒為單位給出了通用時間和本地時間之間的時差。 ```py $ ./utc_local.py Local datetime: 2017-09-11T13:01:58 Universal datetime: 2017-09-11T11:01:58Z The offset from UTC is: 7200 seconds ``` 這是輸出。 ## 天數 特定月份的天數通過`daysInMonth()`方法返回,一年中的天數通過`daysInYear()`方法返回。 `days.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDate, Qt now = QDate.currentDate() d = QDate(1945, 5, 7) print("Days in month: {0}".format(d.daysInMonth())) print("Days in year: {0}".format(d.daysInYear())) ``` 該示例顯示所選日期的月份和年份中的天數。 ```py $ ./days.py Days in month: 31 Days in year: 365 ``` 這是輸出。 ## 天數差異 `daysTo()`方法返回從一個日期到另一個日期的天數。 `xmas.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDate xmas1 = QDate(2016, 12, 24) xmas2 = QDate(2017, 12, 24) now = QDate.currentDate() dayspassed = xmas1.daysTo(now) print("{0} days have passed since last XMas".format(dayspassed)) nofdays = now.daysTo(xmas2) print("There are {0} days until next XMas".format(nofdays)) ``` 該示例計算從上一個 XMas 經過的天數以及直到下一個 XMas 為止的天數。 ```py $ ./xmas.py 261 days have passed since last XMas There are 104 days until next XMas ``` 這是輸出。 ## 日期時間算法 我們通常需要在日期時間值上加上或減去天,秒或年。 `arithmetic.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDateTime, Qt now = QDateTime.currentDateTime() print("Today:", now.toString(Qt.ISODate)) print("Adding 12 days: {0}".format(now.addDays(12).toString(Qt.ISODate))) print("Subtracting 22 days: {0}".format(now.addDays(-22).toString(Qt.ISODate))) print("Adding 50 seconds: {0}".format(now.addSecs(50).toString(Qt.ISODate))) print("Adding 3 months: {0}".format(now.addMonths(3).toString(Qt.ISODate))) print("Adding 12 years: {0}".format(now.addYears(12).toString(Qt.ISODate))) ``` 該示例確定當前日期時間,并添加或減去天,秒,月和年。 ```py $ ./arithmetics.py Today: 2017-09-11T13:15:24 Adding 12 days: 2017-09-23T13:15:24 Subtracting 22 days: 2017-08-20T13:15:24 Adding 50 seconds: 2017-09-11T13:16:14 Adding 3 months: 2017-12-11T13:15:24 Adding 12 years: 2029-09-11T13:15:24 ``` 這是示例輸出。 ## 夏令時 夏令時(DST)是在夏季的幾個月中增加時鐘的一種做法,因此晚上的夏時制持續時間更長。 在春季開始時將時間向前調整一小時,在秋季將時間向后調整為標準時間。 `daylight_saving.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDateTime, QTimeZone, Qt now = QDateTime.currentDateTime() print("Time zone: {0}".format(now.timeZoneAbbreviation())) if now.isDaylightTime(): print("The current date falls into DST time") else: print("The current date does not fall into DST time") ``` 該示例檢查日期時間是否在夏時制中。 ```py print("Time zone: {0}".format(now.timeZoneAbbreviation())) ``` `timeZoneAbbreviation()`方法返回日期時間的時區縮寫。 ```py if now.isDaylightTime(): ``` 如果日期時間落在夏令時,則`isDaylightTime()`返回。 ```py $ ./daylight_saving.py Time zone: CEST The current date falls into DST time ``` 當前日期為夏令時(DST)時間。該程序于夏季在中歐的布拉迪斯拉發執行。 中歐夏令時間(CEST)比世界標準時間早 2 小時。 該時區是夏令時時區,在歐洲和南極洲使用。 冬季使用的標準時間是中歐時間(CET)。 ## Unix 紀元 紀元是選擇作為特定紀元起源的時間瞬間。 例如,在西方基督教國家,時間從耶穌出生的第 0 天開始。 另一個例子是法國共和黨日歷,使用了十二年。 這個時期是 1792 年 9 月 22 日宣布的共和紀元的開始,即宣布成立第一共和國并廢除君主制的那一天。 電腦也有自己的紀元。 最受歡迎的版本之一是 Unix 紀元。 Unix 紀元是 1970 年 1 月 1 日 UTC 時間 00:00:00(或`1970-01-01T00:00:00Z ISO8601`)。 計算機中的日期和時間是根據自該計算機或平臺的定義時期以來經過的秒數或時鐘滴答數確定的。 Unix 時間是自 Unix 紀元以來經過的秒數。 ```py $ date +%s 1505128973 ``` Unix `date`命令可用于獲取 Unix 時間。 在這個特定時刻,自 Unix 紀元以來已經過去了 1505128973 秒。 `unix_time.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDateTime, Qt now = QDateTime.currentDateTime() unix_time = now.toSecsSinceEpoch() print(unix_time) d = QDateTime.fromSecsSinceEpoch(unix_time) print(d.toString(Qt.ISODate)) ``` 該示例顯示 Unix 時間并將其轉換回`QDateTime`。 ```py now = QDateTime.currentDateTime() ``` 首先,我們獲取當前日期和時間。 ```py unix_time = now.toSecsSinceEpoch() ``` `toSecsSinceEpoch()`返回 Unix 時間。 ```py d = QDateTime.fromSecsSinceEpoch(unix_time) ``` 使用`fromSecsSinceEpoch()`我們將 Unix 時間轉換為`QDateTime`。 ```py $ ./unix_time.py 1505129851 2017-09-11T13:37:31 ``` 這是輸出。 ## 朱利安日 朱利安日是指自朱利安紀元開始以來的連續天數。 它主要由天文學家使用。 不應將其與朱利安歷法相混淆。 朱利安紀元開始于公元前 4713 年。 朱利安天數 0 被指定為從公元前 4713 年 1 月 1 日正午開始的那一天。 朱利安天數(JDN)是自此時間段開始以來經過的天數。 任意時刻的儒略日期(JD)是前一個正午的儒略日編號加上該時刻以來的那一天的分數。 (Qt 不會計算此分數。)除天文學外,軍事和大型機程序經常使用儒略日期。 `julian_day.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDate, Qt now = QDate.currentDate() print("Gregorian date for today: ", now.toString(Qt.ISODate)) print("Julian day for today: ", now.toJulianDay()) ``` 在示例中,我們計算了今天的公歷日期和儒略日。 ```py print("Julian day for today: ", now.toJulianDay()) ``` 使用`toJulianDay()`方法返回儒略日。 ```py $ ./julianday.py Gregorian date for today: 2017-09-11 Julian day for today: 2458008 ``` 這是輸出。 ## 歷史戰役 在朱利安紀元,可以進行跨越幾個世紀的計算。 `battles.py` ```py #!/usr/bin/python3 from PyQt5.QtCore import QDate, Qt borodino_battle = QDate(1812, 9, 7) slavkov_battle = QDate(1805, 12, 2) now = QDate.currentDate() j_today = now.toJulianDay() j_borodino = borodino_battle.toJulianDay() j_slavkov = slavkov_battle.toJulianDay() d1 = j_today - j_slavkov d2 = j_today - j_borodino print("Days since Slavkov battle: {0}".format(d1)) print("Days since Borodino battle: {0}".format(d2)) ``` 該示例計算自兩次歷史事件以來經過的天數。 ```py borodino_battle = QDate(1812, 9, 7) slavkov_battle = QDate(1805, 12, 2) ``` 我們有拿破侖紀元的兩次戰斗。 ```py j_today = now.toJulianDay() j_borodino = borodino_battle.toJulianDay() j_slavkov = slavkov_battle.toJulianDay() ``` 我們計算了今天以及斯拉夫科夫和波羅底諾戰役的儒略日。 ```py d1 = j_today - j_slavkov d2 = j_today - j_borodino ``` 我們計算了兩次戰斗以來經過的天數。 ```py $ ./battles.py Days since Slavkov battle: 77350 Days since Borodino battle: 74879 ``` 運行此腳本時,自從斯拉夫科夫戰役以來已經過去了 77350 天,從波羅底諾戰役已經過去了 74878 天。 在 PyQt5 教程的這一部分中,我們處理了日期和時間。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看