-2

UTC 日付/時刻文字列を別のタイムゾーンに変換しようとしています。UTCタイムゾーンで日付/時刻を表示するだけです。

以下のコード:

        apiDate = "2013-04-16T16:05:50Z";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
        Date date = dateFormat.parse(apiDate);

        Calendar calendar = Calendar.getInstance();
        TimeZone timeZone = calendar.getTimeZone();

        SimpleDateFormat newDateFormat = new SimpleDateFormat("hh:mm aa, MMMM dd, yyyy");
        newDateFormat.setTimeZone(timeZone);
        String newDateString = newDateFormat.format(date);
4

2 に答える 2

2

「解析」SimpleDateFormatをUTCに設定する必要があります。それ以外の場合、実際には解析時にデフォルトのタイムゾーンが想定されます:

TimeZone utc = TimeZone.getTimeZone("Etc/UTC");
dateFormat.setTimeZone(utc);

また、システムの既定のタイム ゾーンを取得するためにカレンダーを作成する必要はありません。次を使用するだけです。

TimeZone defaultZone = TimeZone.getDefault();
于 2013-04-15T14:07:28.647 に答える
0
import java.util.Date;
import java.util.TimeZone;
import java.text.SimpleDateFormat;

public class Test {

    public static final SimpleDateFormat fDateTime = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss");

    public static void main(String[] args) {

        String output = getFormattedDate("2016-03-1611T23:27:58+05:30");
        System.out.println(output);

    }

    public static String getFormattedDate(String inputDate) {

        try {
            Date dateAfterParsing = fDateTime.parse(inputDate);

            fDateTime.setTimeZone(TimeZone.getTimeZone("timeZone"));

            return fDateTime.format(dateAfterParsing);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
于 2016-03-28T10:18:34.463 に答える