biweekly.util
Class ICalDateFormatter

java.lang.Object
  extended by biweekly.util.ICalDateFormatter

public class ICalDateFormatter
extends Object

Helper class that formats and parses iCalendar dates. iCalendar dates adhere to the ISO8601 date format standard.

Author:
Michael Angstadt

Method Summary
static String format(Date date, ISOFormat format)
          Formats a date for inclusion in an iCalendar object.
static String format(Date date, ISOFormat format, TimeZone timeZone)
          Formats a date for inclusion in an iCalendar object.
static String formatTimeZone(int hourOffset, int minuteOffset, boolean extended)
          Formats a timezone offset according to ISO8601 rules.
static String formatTimeZone(TimeZone timeZone, boolean extended)
          Formats a TimeZone object according to ISO8601 rules.
static Date parse(String dateStr)
          Parses an iCalendar date.
static Date parse(String dateStr, TimeZone timezone)
          Parses an iCalendar date.
static int[] parseTimeZone(String offsetStr)
          Parses a timezone that's in ISO8601 format.
static TimeZone parseTimeZoneId(String timezoneId)
          Gets the TimeZone object that corresponds to the given ID.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

format

public static String format(Date date,
                            ISOFormat format)
Formats a date for inclusion in an iCalendar object.

Parameters:
date - the date to format
format - the format to use
Returns:
the formatted date

format

public static String format(Date date,
                            ISOFormat format,
                            TimeZone timeZone)
Formats a date for inclusion in an iCalendar object.

Parameters:
date - the date to format
format - the format to use
timeZone - the timezone to format the date in or null to use the JVM's default timezone (ignored with "UTC" formats)
Returns:
the formatted date

parse

public static Date parse(String dateStr)
Parses an iCalendar date.

Parameters:
dateStr - the date string to parse (e.g. "20130609T181023Z")
Returns:
the parsed date
Throws:
IllegalArgumentException - if the date string isn't in one of the accepted ISO8601 formats

parse

public static Date parse(String dateStr,
                         TimeZone timezone)
Parses an iCalendar date.

Parameters:
dateStr - the date string to parse (e.g. "20130609T181023Z")
timezone - the timezone to parse the date as or null to use the JVM's default timezone (if the date string contains its own timezone, then that timezone will be used instead)
Returns:
the parsed date
Throws:
IllegalArgumentException - if the date string isn't in one of the accepted ISO8601 formats

parseTimeZone

public static int[] parseTimeZone(String offsetStr)
Parses a timezone that's in ISO8601 format.

Parameters:
offsetStr - the timezone offset string (e.g. "-0500" or "-05:00")
Returns:
the hour offset (index 0) and the minute offset (index 1)
Throws:
IllegalArgumentException - if the timezone string isn't in the right format

formatTimeZone

public static String formatTimeZone(TimeZone timeZone,
                                    boolean extended)
Formats a TimeZone object according to ISO8601 rules.

Parameters:
timeZone - the timezone to format
extended - true to use "extended" format, false not to. Extended format will put a colon between the hour and minute.
Returns:
the formatted timezone (e.g. "+0530" or "+05:30")

formatTimeZone

public static String formatTimeZone(int hourOffset,
                                    int minuteOffset,
                                    boolean extended)
Formats a timezone offset according to ISO8601 rules.

Parameters:
hourOffset - the hour offset
minuteOffset - the minute offset (between 0 and 59)
extended - true to use "extended" format, false not to. Extended format will put a colon between the hour and minute.
Returns:
the formatted timezone (e.g. "+0530" or "+05:30")

parseTimeZoneId

public static TimeZone parseTimeZoneId(String timezoneId)
Gets the TimeZone object that corresponds to the given ID.

Parameters:
timezoneId - the timezone ID (e.g. "America/New_York")
Returns:
the timezone object or null if not found


Copyright © 2013 Michael Angstadt. All Rights Reserved.