-3

のような日付がありますがTue Mar 19 00:41:00 GMT 2013、どのように変換すればよい2013-03-19 06:13:00ですか?

final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final Date date = bdate; 
Date ndate = formatter.parse(formatter.format(date)); 
System.out.println(ndate);

同じ日付を与えます。

4

5 に答える 5

4

2 つの SimpleDateFormat オブジェクトを適切な形式で使用し、最初のオブジェクトを使用して文字列を日付に解析し、2 番目のオブジェクトを使用して日付を再度文字列にフォーマットします。

于 2013-03-19T20:04:21.010 に答える
2

最初の答えが言うように。まず、次のように SimpleDateFormat を使用して日付を解析します。

Date from = new SimpleDateFormat("E M d hh:mm:ss z yyyy").parse("Tue Mar 19 00:41:00 GMT 2013");

次に、それを使用して、次のように SimpleDateFormat の別のインスタンスで結果の日付オブジェクトをフォーマットします。

String to = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(from);

ここで SimpleDateFormat の javadoc を参照してください。それが役立つことを願っています。

于 2013-03-19T20:13:53.847 に答える
2

タイムゾーン (TZ) の処理は、他の人が省略した主要な事項の 1 つです。SimpleDateFormat を使用して日付の文字列表現に出入りするときはいつでも、扱っている TZ を認識する必要があります。SimpleDateFormat で TZ を明示的に設定しない限り、書式設定/解析時にデフォルトの TZ が使用されます。デフォルトのタイムゾーンで日付文字列のみを処理しない限り、問題が発生します。

入力日付は GMT の日付を表しています。出力を GMT としてフォーマットする必要があると仮定すると、SimpleDateFormat で TZ を設定する必要があります。

public static void main(String[] args) throws Exception
{
    String inputDate = "Tue Mar 19 00:41:00 GMT 2013";
    // Initialize with format of input
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    // Configure the TZ on the date formatter. Not sure why it doesn't get set
    // automatically when parsing the date since the input includes the TZ name,
    // but it doesn't. One of many reasons to use Joda instead
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    Date date = sdf.parse(inputDate);
    // re-initialize the pattern with format of desired output. Alternatively,
    // you could use a new SimpleDateFormat instance as long as you set the TZ
    // correctly
    sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(date));
}
于 2013-03-19T20:56:21.520 に答える
1

SimpleDateFormatを次のように使用します。

final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final Date date = new Date();
System.out.println(formatter.format(date));
于 2013-03-19T20:10:25.377 に答える
0

日付の計算や解析を行う場合は、JodaTime を使用してください。標準の JAVA 日付サポートは非​​常にバグが多いためです。

于 2013-03-19T20:13:05.083 に答える