26

PHP の strtotime() は、次の変換を実行できます。

入力:

strtotime('2004-02-12T15:19:21+00:00');
strtotime('Thu, 21 Dec 2000 16:01:07 +0200');
strtotime('1月1日月曜日');
strtotime('明日');
strtotime('-1 週 2 日 4 時間 2 秒');

出力:

2004-02-12 07:02:21
2000-12-21 06:12:07
2009-01-01 12:01:00
2009-02-12 12:02:00
2009-02-06 09:02:41

Javaでこれを行う簡単な方法はありますか?

はい、これは重複しています。ただし、元の質問には回答がありませんでした。通常、過去の日付を照会する機能が必要です。ユーザーが「「-1 週間」から「今」までのすべてのイベントが欲しい」と言えるようにしたいと考えています。これらのタイプのリクエストのスクリプト作成がはるかに簡単になります。

4

5 に答える 5

3

JodaTimeを見てください。Javaに最適な日時ライブラリだと思います。

于 2009-08-15T09:59:49.833 に答える
2

Calendar を使用し、SimpleDateFormat で結果をフォーマットします。

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html

    Calendar now = Calendar.getInstance();
    Calendar working;
    SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

    working = (Calendar) now.clone();

    //strtotime("-2 years")
    working.add(Calendar.DAY_OF_YEAR, - (365 * 2));
    System.out.println("  Two years ago it was: " + formatter.format(working.getTime()));

    working = (Calendar) now.clone();

    //strtotime("+5 days");
    working.add(Calendar.DAY_OF_YEAR, + 5);
    System.out.println("  In five days it will be: " + formatter.format(working.getTime()));

これは、PHP の strtotime() よりもかなり冗長ですが、最終的には、これが目的の機能です。

于 2009-08-12T19:34:32.037 に答える
1

私の知る限り、このようなものは存在しません。自分でハックする必要があります。ただし、必要ない場合もあります。日付をタイムスタンプとして保存し、単純な計算を行ってみてください。これがあなたが望むほどきれいではないことは理解しています。しかし、それはうまくいくでしょう。

于 2009-08-12T19:28:46.603 に答える