問題タブ [python-dateutil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
821 参照

python - Python/dateutil で 2 つのタイムスパンを互いに分割する

この問題を考慮してください:

生理の追加を開始する日付が過去にあります。これらの期間を追加すると、今日より後の日付になる場合は、停止して、最後の日付が何であるかを確認したいと思います。

これは、メンバーシップの引き落とし日を計算するための機能です。たとえば、メンバーが 2007-01-31 に参加します。彼は毎月引き落とされています。今日が 2013-03-29 だとしましょう (実際には atm です)。そのため、2007 年 1 月 31 日以降の月数のカウントを開始する必要があり、今日の日付を過ぎたら停止する必要があります。次の引き落とし日は 2013 年 3 月 31 日であることがわかります。

これを実装するために dateutil ライブラリを使用しています。現在の日付を超えるまで、relativedelta を while ループに追加します。(おそらく最善の方法ではないことはわかっていますが、私はまだ Python の初心者であり、これは概念実証です)。問題は、2007 年 1 月 31 日に 1 か月追加すると、次の日付が 2007 年 2 月 28 日になることです。これは正しいことです。しかし、次の反復では日付は 2007-03-28 になります。これは、dateutil が 28 日を月の最終日として認識せず、そのまま維持して 3 月の最終日まで反復するためです。もちろん、これは完全に有効な実装です。次に、dateutils rrule オブジェクトを試してみましたが、原則は同じです。日付のリストを出力しますが、日数が足りない月は単純にスキップします。

それから私は別のアプローチを考えました:

2007 年 1 月 31 日から 2013 年 3 月 29 日までの期間の期間の数を数えることができれば、それらの期間の数を startdate に追加することができ、dateutil は正しい日付を返します。
問題は、期間が必ずしも 1 か月ではないことです。たとえば、4 週間、四半期、または 1 年の場合もあります。

私は、relativedelta を取得して、それを別の relativedelta で割って、後者が最初に入る回数を取得する方法を見つけることができませんでした。

誰かが私を正しい方向に向けることができれば、私はそれを感謝します. たとえば、これを実行できるライブラリはありますか (タイムスパンを互いに分割し、月や週などの特定のタイムブロックで結果を出力します)? おそらく、期間を入力として受け入れるdatediff関数がありますか(たとえば、vbscriptでは、週、月、日など、必要な期間の2つの日付の差を取得できます)。おそらくまったく異なる解決策はありますか?

完全を期すために、コードを含めますが、テキストですべてが説明されていると思います。

ありがとう、

エリック

編集:私は今、それが想定されていることを行うソリューションを持っていますが、Pythonic、エレガント、または高速ではありません。質問は同じままです。誰かがより良い解決策を思いつくことができれば、してください。これが私が思いついたものです:

0 投票する
2 に答える
40774 参照

python - Python 初心者 - PIP / 無効な構文エラー

わかりました、プログラミングとPythonのまったくの初心者です。Windows 7、python 2.7 x64 を実行しています。dateutilを使用してインストールパッケージを試していますpip

をインストールpipしましたがnumpy、ファイルpandasなので非常に簡単でした。exe

私は今pip、インストールに使用しようとしていますdateutil。Python シェルで、次のように入力しました。

インストール コマンドで引き続き"Invalid Syntax"エラーが発生します。ここで何が間違っていますか?Pythonコマンドラインでもこれを試しました。

モジュールがインストールされていることを確認しましたが、 と の両方がpipありeasy_installます。今は本当に混乱しています... のセットアップスクリプトも実行しようとしましたが、次のdateutilエラーが表示されます。

助けてください!助けてくれてありがとう。

0 投票する
2 に答える
270 参照

python - 今朝を基準に将来を支配する

いくつかの単純なルールに準拠する次の時点を計算しようとしています。

リストに記載されている平日のみを含めます (以下の例では、月~金)。リストされている時間 (12:00、18:00) のみを返します。

After提供された日付から始めて、最初のそのようなポイントを取得したいと思います。

私はこれまでのところ持っていますが、現在の時間からの一定のオフセットのように見える「丸められていない」時間を返しています

これは現在戻っ2013-05-01 18:53:39+01てきており、現在の時刻に関連しているようです。

rrule を取得して真夜中を基準にした時間を使用し、日付を返す方法を誰かに教えてもらえますかAfter?

望ましい出力の明示的な例

0 投票する
1 に答える
270 参照

python - dateutil のパーサーが時間を正しくレンダリングできない

おそらく私は明らかな何かを見逃していますが、dateutil のパーサーが次の時間を正しくレンダリングできない理由を知っている人はいますか? (時間は 0 ではなく 20 にする必要があります。)

追加T:

追加ignoretz:

別の時間を試してください:

0 投票する
3 に答える
5164 参照

python - python datetime.timedelta を dateutil.relativedelta に変換するエレガントな方法

relativedeltaと の間で変換するエレガントなwasはありtimedeltaますか?

ユースケースは、ユーザー入力の ISO 日付を取得することです。Python は または のいずれかisodateを返します。isodate.duration.Durationdatetime.timedelta

の機能が必要ですrelativedelta(日のみで作業する場合の "datetime.timedelta" と "dateutil.relativedelta.relativedelta" の違いは何ですか? -- より多くのことを行う) ため、これらの両方のタイプを に変換する必要がありrelativedataます。

0 投票する
2 に答える
3508 参照

python - Python dateutil パーサー、文字列の日付以外の部分を無視

dateutil を使用して画像ファイル名を解析し、日付に従って並べ替えています。すべての写真にメタデータがあるわけではないため、dateutil はそれらをどこに配置するかを推測しようとしています。

私の写真のほとんどはこの形式です: 2007-09-10_0001.jpg 2007-09-10_0002.jpg など...

私が得ているリターンはこれです:

これで、アンダースコアの後ろからすべてを削除できるはずですが、別の形式の写真がある場合に備えて、可能であればより堅牢なソリューションが必要でした. 私はファジーが文字列内の任意の日付を見つけてそれに一致させようとしましたが、明らかに機能していません...

パーサーに日付のように見えるものを見つけさせ、その後停止させる簡単な方法はありますか? そうでない場合、パーサーにアンダースコアの後のすべてを無視させる最も簡単な方法は何ですか? または、無視セクションを使用して複数の日付形式を定義する方法。

ありがとう!

0 投票する
2 に答える
1515 参照

python - Django dateutil ISO 8601 no 'read'属性エラー

Django ビューで日時を ISO 8601 に変換して、Facebook ページのイベントにプッシュしています。私は試しましdatetime.strptimeたが、私が選んだ最善のアドバイスに従ってください:

eventdate は、印刷するとコンソールで次のように表示されます2013-06-18 02:50:00が、取得する前にそれ以上取得しません:

これは何ですか?ありがとう