Java TimeZone Format getTimezoneFormattedString(Date date, String timezone)

Here you can find the source of getTimezoneFormattedString(Date date, String timezone)

Description

get Timezone Formatted String

License

Open Source License

Declaration

public static String getTimezoneFormattedString(Date date, String timezone) 

Method Source Code

//package com.java2s;
/**/*  ww  w. java2s . co  m*/
 * Tysan Clan Website
 * Copyright (C) 2008-2013 Jeroen Steenbeeke and Ties van de Ven
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import java.util.Locale;
import java.util.TimeZone;

public class Main {
    public static final TimeZone NEW_YORK = TimeZone.getTimeZone("America/New_York");

    public static String getTimezoneFormattedString(Date date, String timezone) {
        TimeZone tz = null;
        if (timezone == null) {
            tz = NEW_YORK;
        } else {
            tz = TimeZone.getTimeZone(timezone);
        }

        Calendar cal = Calendar.getInstance(tz, Locale.US);
        cal.setTime(date);
        StringBuilder builder = createDateFormatString(cal);

        SimpleDateFormat sdf = new SimpleDateFormat(builder.toString(), Locale.US);
        sdf.setTimeZone(tz);
        return sdf.format(date);
    }

    public static StringBuilder createDateFormatString(Calendar cal) {
        String postfix = getDayOfMonthPostfix(cal);

        StringBuilder builder = new StringBuilder();
        builder.append("d'").append(postfix).append(" of' MMMM yyyy '@' HH:mm zzz");
        return builder;
    }

    private static String getDayOfMonthPostfix(Calendar cal) {
        String postfix = "th";

        switch (cal.get(Calendar.DAY_OF_MONTH)) {
        case 1:
        case 21:
        case 31:
            postfix = "st";
            break;
        case 2:
        case 22:
            postfix = "nd";
            break;
        case 3:
        case 23:
            postfix = "rd";
            break;
        }
        return postfix;
    }
}

Related

  1. getFormattedTime(Date time, String formatTime, String timezone)
  2. getSimpleDateFormat(TimeZone timeZone, String pattern)
  3. getString(Date dt, DateFormat df, TimeZone to)
  4. getTimeByZoneAndFormat(Date date, TimeZone zone, String format)
  5. getTimeWithFormat(String stringDate, String dateFormat, DateTimeZone timeZone, Locale locale)
  6. getUserToServerDateTimeString(TimeZone timeZone, int dateFormat, int timeFormat, String date)
  7. getZfgcTimeZoneDateFormat(String timezone)
  8. resolveTimeZone(SimpleDateFormat sdf, String timezone)
  9. String2Date(String date, String formatPattern, Locale locale, TimeZone timeZone)