年の値と年の日があり、日付(日/月/年)に変換したいと思います。
43758 次
6 に答える
104
datetime.datetime(year, 1, 1) + datetime.timedelta(days - 1)
于 2010-03-11T18:26:01.633 に答える
32
>>> import datetime
>>> datetime.datetime.strptime('2010 120', '%Y %j')
datetime.datetime(2010, 4, 30, 0, 0)
>>> _.strftime('%d/%m/%Y')
'30/04/2010'
于 2010-03-11T18:25:30.653 に答える
7
クラスのtoordinal()
andfromordinal()
関数をdate
使用できます。
from datetime import date
date.fromordinal(date(year, 1, 1).toordinal() + days - 1)
于 2010-03-11T18:29:14.800 に答える
4
最近はかなり一般的であるため、指定された単位とオリジンpandas
で使用するオプション:pd.to_datetime
import pandas as pd
day, year = 21, 2021
print(pd.to_datetime(day-1, unit='D', origin=str(year)))
# 2021-01-21 00:00:00
于 2021-01-13T16:57:25.427 に答える
0
>>>import datetime
>>>year = int(input())
>>>month = int(input())
>>>day = int(input())
data = datetime.datetime(year,month,day)
daynew = data.toordinal()
yearstart = datetime.datetime(year,1,1)
day_yearstart = yearstart.toordinal()
print ((daynew-day_yearstart)+1)
于 2018-06-01T11:14:44.880 に答える
0
mx.DateTimeモジュールを使用して日付を取得することは、とを使用して上記で提案されたものと同様datetime
ですtimedelta
。すなわち:
import mx.DateTime as dt
date = dt.DateTime(yyyy,mm,dd) + dt.DateTimeDeltaFromDays(doy-1)
したがって、年(たとえば、2020)とdoy(年の日、たとえば234)を知っているとすると、次のようになります。
date = dt.DateTime(2020,1,1) + dt.DateTimeFromDays(233)
これは
2020-08-21 00:00:00.00
mx.DateTimeライブラリの利点は、多くの便利な機能があることです。そのホームページの説明によると:
- ほぼシームレスな方法で日付/時刻の文字列値を解析します。
- 多くの異なる代替の日付/時刻ストレージ形式との間の変換ルーチンを提供します。
- 統合を簡単にする使いやすいCAPIが含まれています。
- 高速、メモリ効率、正確。
- グルジア暦とユリウス暦のサポート。
- 有効な日付の広大な範囲(BCの日付を含む)。
- 安定性、堅牢性、移植性(mxDateTimeは約15年前から存在しています)。
- Pythonの時刻および日時モジュールと完全に相互運用します。
于 2020-11-17T18:14:05.170 に答える