0,0 → 1,111 |
/* |
* Copyright 2011 Brian Rosenberger (Brutex Network) |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
package net.brutex.xservices.types; |
|
import java.text.ParseException; |
import java.text.SimpleDateFormat; |
import java.util.Date; |
import java.util.Locale; |
import java.util.TimeZone; |
|
import javax.xml.bind.annotation.XmlEnum; |
import javax.xml.bind.annotation.XmlEnumValue; |
import javax.xml.bind.annotation.XmlType; |
|
import net.brutex.xservices.util.BrutexNamespaces; |
|
/** |
* Different pre-defined date formats. |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@XmlEnum() |
public enum DateFormatType { |
|
/** |
* ISO 8601 format (2011-05-24T14:39+01:00) |
*/ |
@XmlEnumValue("ISO 8601") |
ISO8601("ISO 8601", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), |
/** |
* RFC822 format (2011-05-24T14:39+0100) |
*/ |
@XmlEnumValue("RFC 822") |
RFC822("RFC 822", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), |
/** |
* yyyy/mm/dd |
*/ |
@XmlEnumValue("DateOnly-slashed") |
YYYYMMDD("DateOnly-slashed", "yyyy/MM/dd"), |
|
/** |
* dd.mm.yyyy |
*/ |
@XmlEnumValue("DateOnly-dotted") |
DDMMYYYY("DateOnly-dotted", "dd.MM.yyyy"), |
|
/** |
* dd.mm.yyyy |
*/ |
@XmlEnumValue("DateOnly-dashed") |
DDMMYYYYdashed("DateOnly-dashed", "dd-MM-yyyy"); |
|
private String value; |
private String format; |
|
DateFormatType(String value, String format) { |
this.value = value; |
this.format = format; |
} |
|
/** |
* Return the value of the enum. |
* @return String representation of the mime type |
*/ |
public String value() { |
return value; |
} |
|
public String format(Date date, Locale locale, TimeZone timezone) { |
if(date==null) return ""; |
if(locale==null) locale = Locale.getDefault(); |
if(timezone==null) timezone = TimeZone.getDefault(); |
String result = ""; |
SimpleDateFormat f; |
if(this.equals(ISO8601)) { |
//apply ISO8061 hack |
f = new SimpleDateFormat(RFC822.format, locale); |
f.setTimeZone(timezone); |
result = f.format(date); |
result = result.substring(0, 26) + ":" + result.substring(26); |
} else { |
f = new SimpleDateFormat(this.format, locale); |
f.setTimeZone(timezone); |
result = f.format(date); |
} |
return result; |
} |
|
public Date parse(String s, Locale locale, TimeZone timezone) |
throws ParseException { |
if(locale==null) locale = Locale.getDefault(); |
if(timezone==null) timezone = TimeZone.getDefault(); |
SimpleDateFormat fin = new SimpleDateFormat(this.format, locale); |
fin.setTimeZone(timezone); |
Date date = fin.parse(s); |
return date; |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |