From 457959bc8891752e6df9f535fc4660bd20cb5894 Mon Sep 17 00:00:00 2001 From: rcollier Date: Mon, 4 Feb 2013 03:52:08 +0000 Subject: [PATCH] SMACK-391 New enum to define date formats and profiles. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13429 b35dd754-fafc-0310-a699-88a17e54d16e --- .../smack/util/DateFormatType.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 source/org/jivesoftware/smack/util/DateFormatType.java diff --git a/source/org/jivesoftware/smack/util/DateFormatType.java b/source/org/jivesoftware/smack/util/DateFormatType.java new file mode 100644 index 000000000..2ecef756f --- /dev/null +++ b/source/org/jivesoftware/smack/util/DateFormatType.java @@ -0,0 +1,45 @@ +package org.jivesoftware.smack.util; + +import java.text.SimpleDateFormat; + +/** + * Defines the various date and time profiles used in XMPP along with their associated formats. + * @author Robin Collier + * + */ +public enum DateFormatType +{ + XEP_0082_DATE_PROFILE("yyyy-MM-dd"), + XEP_0082_DATETIME_PROFILE("yyyy-MM-dd'T'HH:mm:ss'Z'"), + XEP_0082_DATETIME_MILLIS_PROFILE("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"), + XEP_0082_TIME_PROFILE("hh:mm:ss"), + XEP_0082_TIME_ZONE_PROFILE("hh:mm:ss'Z'"), + XEP_0082_TIME_MILLIS_PROFILE("hh:mm:ss.SSS"), + XEP_0082_TIME_MILLIS_ZONE_PROFILE("hh:mm:ss.SSS'Z'"), + XEP_0091_DATETIME("yyyyMMdd'T'HH:mm:ss"); + + private String formatString; + + private DateFormatType(String dateFormat) + { + formatString = dateFormat; + } + + /** + * Get the format string as defined in either XEP-0082 or XEP-0091. + * @return The defined string format for the date. + */ + public String getFormatString() + { + return formatString; + } + + /** + * Create a {@link SimpleDateFormat} object with the format defined by {@link #getFormatString()}. + * @return A new date formatter. + */ + public SimpleDateFormat createFormatter() + { + return new SimpleDateFormat(getFormatString()); + } +}