-[UTF-8 Japanese]
-
- JinCoreライブラリ
- README
-
- Copyright(c) 2009 olyutorskii
-
-
-=== JinCoreとは ===
-
-
- JinCoreライブラリは、Jindolf プロジェクトのコア共通部分を構成する
-Javaパッケージです。
- このアーカイブは、JinCoreライブラリの開発資産を、ある時点で凍結したものです。
-
- Jindolfは、CGIゲーム「人狼BBS」の専用クライアント開発プロジェクトです。
- JinCoreは、Jindolf以外の人狼BBSクライアント製作者向けに、
-Jindolfの機能の一部を提供することを目的に発足した、派生プロジェクトです。
-
-※ このアーカイブにはJindolfの実行バイナリは含まれていません。
- Jindolfを動かしたい方は、jindolfで始まり拡張子が*.jarであるファイルを
- 別途入手してください。
-※ 人狼BBSのURLは [ http://homepage2.nifty.com/ninjinia/ ] まで
-※ 人狼BBSを主催するninjin氏は、JinCoreの製作に一切関与していません。
- JinCoreに関する問い合わせををninjin氏へ投げかけないように!約束だよ!
-
-
-=== ソースコードに関して ===
-
- - JinCoreはJava言語(JLS3)で記述されたプログラムです。
- - JinCoreは他のプログラムに組み込まれて利用されるライブラリです。
- JARファイルによるライブラリ提供や、他プロジェクトのソースツリーへの
- マージの形で利用される事を想定しています。
- - JinCoreはJRE1.5に準拠したJava実行環境で利用できるように作られています。
- 原則として、JRE1.5に準拠した実行系であれば、プラットフォームを選びません。
-
-
-=== アーカイブ管理体制 ===
-
- このアーカイブは、UTF-8による開発環境を前提として構成されています。
- このアーカイブの原本となる開発資産は、
- http://hg.sourceforge.jp/view/jindolf/JinCore
- を上位に持つMercurialリポジトリで管理されています。
-
-
-=== 開発プロジェクト運営元 ===
-
- http://sourceforge.jp/projects/jindolf/devel/ まで。
-
-
-=== ディレクトリ内訳構成 ===
-
-基本的にはMaven2のmaven-archetype-quickstart構成に準じます。
-
-./README.txt
- あなたが今見てるこれ。
-
-./CHANGELOG.txt
- 変更履歴。
-
-./LICENSE.txt
- ライセンスに関して。
-
-./pom.xml
- Maven2用プロジェクト構成定義ファイル。
-
-./build.xml
- Ant用追加タスク。
-
-./src/main/java/
- Javaのソースコード。
-
-./src/main/resources/
- プロパティファイルなどの各種リソース。
-
-./src/test/java/
- JUnit 4.* 用のユニットテストコード。
-
-./src/main/config/checks.xml
- Checkstyle用configファイル。
-
-./src/main/config/pmdrules.xml
- PMD用ルール定義ファイル。
-
-./src/main/assembly/descriptor.xml
- ソースアーカイブ構成定義ファイル。
-
-
---- EOF ---
+[UTF-8 Japanese]\r
+\r
+ JinCoreライブラリ\r
+ README\r
+\r
+ Copyright(c) 2009 olyutorskii\r
+\r
+\r
+=== JinCoreとは ===\r
+\r
+\r
+ JinCoreライブラリは、Jindolf プロジェクトのコア共通部分を構成する\r
+Javaパッケージです。\r
+ このアーカイブは、JinCoreライブラリの開発資産を、ある時点で凍結したものです。\r
+\r
+ Jindolfは、CGIゲーム「人狼BBS」の専用クライアント開発プロジェクトです。\r
+ JinCoreは、Jindolf以外の人狼BBSクライアント製作者向けに、\r
+Jindolfの機能の一部を提供することを目的に発足した、派生プロジェクトです。\r
+\r
+※ このアーカイブにはJindolfの実行バイナリは含まれていません。\r
+ Jindolfを動かしたい方は、jindolfで始まり拡張子が*.jarであるファイルを\r
+ 別途入手してください。\r
+※ 人狼BBSのURLは [ http://homepage2.nifty.com/ninjinia/ ] まで\r
+※ 人狼BBSを主催するninjin氏は、JinCoreの製作に一切関与していません。\r
+ JinCoreに関する問い合わせををninjin氏へ投げかけないように!約束だよ!\r
+\r
+\r
+=== ソースコードに関して ===\r
+\r
+ - JinCoreはJava言語(JLS3)で記述されたプログラムです。\r
+ - JinCoreは他のプログラムに組み込まれて利用されるライブラリです。\r
+ JARファイルによるライブラリ提供や、他プロジェクトのソースツリーへの\r
+ マージの形で利用される事を想定しています。\r
+ - JinCoreはJRE1.5に準拠したJava実行環境で利用できるように作られています。\r
+ 原則として、JRE1.5に準拠した実行系であれば、プラットフォームを選びません。\r
+\r
+\r
+=== アーカイブ管理体制 ===\r
+\r
+ このアーカイブは、UTF-8による開発環境を前提として構成されています。\r
+ このアーカイブの原本となる開発資産は、\r
+ http://hg.sourceforge.jp/view/jindolf/JinCore\r
+ を上位に持つMercurialリポジトリで管理されています。\r
+\r
+\r
+=== 開発プロジェクト運営元 ===\r
+\r
+ http://sourceforge.jp/projects/jindolf/devel/ まで。\r
+\r
+\r
+=== ディレクトリ内訳構成 ===\r
+\r
+基本的にはMaven2のmaven-archetype-quickstart構成に準じます。\r
+\r
+./README.txt\r
+ あなたが今見てるこれ。\r
+\r
+./CHANGELOG.txt\r
+ 変更履歴。\r
+\r
+./LICENSE.txt\r
+ ライセンスに関して。\r
+\r
+./pom.xml\r
+ Maven2用プロジェクト構成定義ファイル。\r
+\r
+./build.xml\r
+ Ant用追加タスク。\r
+\r
+./src/main/java/\r
+ Javaのソースコード。\r
+\r
+./src/main/resources/\r
+ プロパティファイルなどの各種リソース。\r
+\r
+./src/test/java/\r
+ JUnit 4.* 用のユニットテストコード。\r
+\r
+./src/main/config/checks.xml\r
+ Checkstyle用configファイル。\r
+\r
+./src/main/config/pmdrules.xml\r
+ PMD用ルール定義ファイル。\r
+\r
+./src/main/assembly/descriptor.xml\r
+ ソースアーカイブ構成定義ファイル。\r
+\r
+\r
+--- EOF ---\r
-/*
- * Date Utilities
- * (ISO8601)
- *
- * License : The MIT License
- * Copyright(c) 2011 olyutorskii
- */
-
-package jp.sourceforge.jindolf.corelib;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.TimeZone;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * 日付ユーティリティ。
- */
-final class DateUtils{
-
- private static final Pattern ISO8601_PATTERN;
- private static final String REG_PLUS = "\\+";
- private static final String REG_HYPHEN = "\\-";
-
- static{
- String year = "([0-9][0-9][0-9][0-9])";
- String month = "([0-1][0-9])";
- String day = "([0-3][0-9])";
- String hour = "([0-2][0-9])";
- String minute = "([0-5][0-9])";
- String second = "([0-6][0-9])";
- String timezone =
- "("+
- "["+REG_PLUS+REG_HYPHEN+"][0-2][0-9]"+
- "(?:"+ ":?[0-5][0-9]" +")?"+
- "|"+
- "Z"+
- ")";
- String iso8601Regex =
- year +REG_HYPHEN+ month +REG_HYPHEN+ day
- +"T"+
- hour +":"+ minute +":"+ second
- +timezone;
-
- ISO8601_PATTERN = Pattern.compile(iso8601Regex);
- }
-
-
- /**
- * 隠しコンストラクタ。
- */
- private DateUtils(){
- assert false;
- return;
- }
-
-
- /**
- * ISO8601形式の日付をエポック秒msに変換する。
- * JRE1.6 の javax.xml.bind.DatatypeConverter 代替品
- * @param date ISO8601形式の日付文字列
- * @return エポック秒ms
- * @throws IllegalArgumentException 形式が変な場合。
- */
- public static long parseISO8601(CharSequence date)
- throws IllegalArgumentException {
- Matcher matcher = ISO8601_PATTERN.matcher(date);
- if( ! matcher.matches() ){
- throw new IllegalArgumentException(date.toString());
- }
-
- int gid = 1;
- String yearStr = matcher.group(gid++);
- String monthStr = matcher.group(gid++);
- String dayStr = matcher.group(gid++);
- String hourStr = matcher.group(gid++);
- String minuteStr = matcher.group(gid++);
- String secondStr = matcher.group(gid++);
- String tzString = matcher.group(gid++);
-
- int year = Integer.parseInt(yearStr);
- int month = Integer.parseInt(monthStr);
- int day = Integer.parseInt(dayStr);
- int hour = Integer.parseInt(hourStr);
- int minute = Integer.parseInt(minuteStr);
- int second = Integer.parseInt(secondStr);
-
- String tzID = "GMT";
- if( tzString.compareToIgnoreCase("Z") == 0 ) tzID += "+00:00";
- else tzID += tzString;
- TimeZone timezone = TimeZone.getTimeZone(tzID);
-
- Calendar calendar = new GregorianCalendar();
- calendar.clear();
- calendar.setTimeZone(timezone);
- calendar.set(year, month - 1, day, hour, minute, second);
-
- long result = calendar.getTimeInMillis();
-
- return result;
- }
-
-}
+/*\r
+ * Date Utilities\r
+ * (ISO8601)\r
+ *\r
+ * License : The MIT License\r
+ * Copyright(c) 2011 olyutorskii\r
+ */\r
+\r
+package jp.sourceforge.jindolf.corelib;\r
+\r
+import java.util.Calendar;\r
+import java.util.GregorianCalendar;\r
+import java.util.TimeZone;\r
+import java.util.regex.Matcher;\r
+import java.util.regex.Pattern;\r
+\r
+/**\r
+ * 日付ユーティリティ。\r
+ */\r
+final class DateUtils{\r
+\r
+ private static final Pattern ISO8601_PATTERN;\r
+ private static final String REG_PLUS = "\\+";\r
+ private static final String REG_HYPHEN = "\\-";\r
+\r
+ static{\r
+ String year = "([0-9][0-9][0-9][0-9])";\r
+ String month = "([0-1][0-9])";\r
+ String day = "([0-3][0-9])";\r
+ String hour = "([0-2][0-9])";\r
+ String minute = "([0-5][0-9])";\r
+ String second = "([0-6][0-9])";\r
+ String timezone =\r
+ "("+\r
+ "["+REG_PLUS+REG_HYPHEN+"][0-2][0-9]"+\r
+ "(?:"+ ":?[0-5][0-9]" +")?"+\r
+ "|"+\r
+ "Z"+\r
+ ")";\r
+ String iso8601Regex =\r
+ year +REG_HYPHEN+ month +REG_HYPHEN+ day\r
+ +"T"+\r
+ hour +":"+ minute +":"+ second\r
+ +timezone;\r
+\r
+ ISO8601_PATTERN = Pattern.compile(iso8601Regex);\r
+ }\r
+\r
+\r
+ /**\r
+ * 隠しコンストラクタ。\r
+ */\r
+ private DateUtils(){\r
+ assert false;\r
+ return;\r
+ }\r
+\r
+\r
+ /**\r
+ * ISO8601形式の日付をエポック秒msに変換する。\r
+ * JRE1.6 の javax.xml.bind.DatatypeConverter 代替品\r
+ * @param date ISO8601形式の日付文字列\r
+ * @return エポック秒ms\r
+ * @throws IllegalArgumentException 形式が変な場合。\r
+ */\r
+ public static long parseISO8601(CharSequence date)\r
+ throws IllegalArgumentException {\r
+ Matcher matcher = ISO8601_PATTERN.matcher(date);\r
+ if( ! matcher.matches() ){\r
+ throw new IllegalArgumentException(date.toString());\r
+ }\r
+\r
+ int gid = 1;\r
+ String yearStr = matcher.group(gid++);\r
+ String monthStr = matcher.group(gid++);\r
+ String dayStr = matcher.group(gid++);\r
+ String hourStr = matcher.group(gid++);\r
+ String minuteStr = matcher.group(gid++);\r
+ String secondStr = matcher.group(gid++);\r
+ String tzString = matcher.group(gid++);\r
+\r
+ int year = Integer.parseInt(yearStr);\r
+ int month = Integer.parseInt(monthStr);\r
+ int day = Integer.parseInt(dayStr);\r
+ int hour = Integer.parseInt(hourStr);\r
+ int minute = Integer.parseInt(minuteStr);\r
+ int second = Integer.parseInt(secondStr);\r
+\r
+ String tzID = "GMT";\r
+ if( tzString.compareToIgnoreCase("Z") == 0 ) tzID += "+00:00";\r
+ else tzID += tzString;\r
+ TimeZone timezone = TimeZone.getTimeZone(tzID);\r
+\r
+ Calendar calendar = new GregorianCalendar();\r
+ calendar.clear();\r
+ calendar.setTimeZone(timezone);\r
+ calendar.set(year, month - 1, day, hour, minute, second);\r
+\r
+ long result = calendar.getTimeInMillis();\r
+\r
+ return result;\r
+ }\r
+\r
+}\r
-/*
- * DOM Utilities
- *
- * License : The MIT License
- * Copyright(c) 2011 olyutorskii
- */
-
-package jp.sourceforge.jindolf.corelib;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.parsers.DocumentBuilder;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * DOM ユーティリティ。
- */
-final class DomUtils{
-
- /**
- * 隠しコンストラクタ。
- */
- private DomUtils(){
- assert false;
- return;
- }
-
-
- /**
- * DOM要素のリストをXMLリソースからロードする。
- * @param builder DOMビルダ
- * @param url URL
- * @param childName 要素名
- * @return DOM要素のリスト
- * @throws IOException 入力エラー
- * @throws SAXException XMLパースエラー
- */
- static List<Element> loadElemList(
- DocumentBuilder builder,
- URL url,
- String childName )
- throws IOException, SAXException{
- Element root = loadElement(builder, url);
- List<Element> result = getChildElemList(root, childName);
- return result;
- }
-
- /**
- * root要素をXMLリソースからロードする。
- * @param builder DOMビルダ
- * @param url URL
- * @return root要素
- * @throws IOException 入力エラー
- * @throws SAXException XMLパースエラー
- */
- private static Element loadElement(DocumentBuilder builder, URL url)
- throws IOException, SAXException{
- InputStream istream = url.openStream();
-
- Document document;
- try{
- document = builder.parse(istream);
- }finally{
- istream.close();
- }
-
- Element root = document.getDocumentElement();
-
- return root;
- }
-
- /**
- * root要素から子要素のリストを得る。
- * @param root root要素
- * @param childName 子要素のタグ名
- * @return 子要素のリスト
- */
- private static List<Element> getChildElemList(
- Element root, String childName){
- NodeList nodeList = root.getElementsByTagName(childName);
- int childNum = nodeList.getLength();
-
- List<Element> result = new ArrayList<Element>(childNum);
-
- for(int index = 0; index < childNum; index++){
- Node node = nodeList.item(index);
- Element element = (Element) node;
- result.add(element);
- }
-
- return result;
- }
-
- /**
- * XMLタグの必須属性値を得る。
- * @param elem XML要素
- * @param attrName 属性名
- * @return 属性値
- * @throws SAXException 必須属性が無かった。
- */
- static String attrRequired(Element elem, String attrName)
- throws SAXException{
- Attr attr = elem.getAttributeNode(attrName);
- if(attr == null){
- throw new SAXException("no attribute[" + attrName + "]");
- }
- String result = attr.getValue();
- if(result == null){
- throw new SAXException("no value[" + attrName + "]");
- }
- return result;
- }
-
- /**
- * XMLタグの属性値を得る。
- * @param elem XML要素
- * @param attrName 属性名
- * @return 属性値。なければnull
- */
- static String attrValue(Element elem, String attrName){
- Attr attr = elem.getAttributeNode(attrName);
- if(attr == null) return null;
-
- String result = attr.getValue();
-
- return result;
- }
-
- /**
- * XML属性値からURIを展開する。
- * @param elem XML国定義要素
- * @param attrName 属性名
- * @return URI
- * @throws SAXException 属性が未定義もしくはURI形式を満たさない。
- */
- static URI attrToUri(Element elem, String attrName)
- throws SAXException{
- Attr attr = elem.getAttributeNode(attrName);
- if(attr == null) return null;
-
- String uriText = attr.getValue();
- if(uriText == null) return null;
-
- URI uri;
- try{
- uri = new URI(uriText).normalize();
- }catch(URISyntaxException e){
- throw new SAXException("illegal URI " + uriText, e);
- }
-
- return uri;
- }
-
-}
+/*\r
+ * DOM Utilities\r
+ *\r
+ * License : The MIT License\r
+ * Copyright(c) 2011 olyutorskii\r
+ */\r
+\r
+package jp.sourceforge.jindolf.corelib;\r
+\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.net.URI;\r
+import java.net.URISyntaxException;\r
+import java.net.URL;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.parsers.DocumentBuilder;\r
+import org.w3c.dom.Attr;\r
+import org.w3c.dom.Document;\r
+import org.w3c.dom.Element;\r
+import org.w3c.dom.Node;\r
+import org.w3c.dom.NodeList;\r
+import org.xml.sax.SAXException;\r
+\r
+/**\r
+ * DOM ユーティリティ。\r
+ */\r
+final class DomUtils{\r
+\r
+ /**\r
+ * 隠しコンストラクタ。\r
+ */\r
+ private DomUtils(){\r
+ assert false;\r
+ return;\r
+ }\r
+\r
+\r
+ /**\r
+ * DOM要素のリストをXMLリソースからロードする。\r
+ * @param builder DOMビルダ\r
+ * @param url URL\r
+ * @param childName 要素名\r
+ * @return DOM要素のリスト\r
+ * @throws IOException 入力エラー\r
+ * @throws SAXException XMLパースエラー\r
+ */\r
+ static List<Element> loadElemList(\r
+ DocumentBuilder builder,\r
+ URL url,\r
+ String childName )\r
+ throws IOException, SAXException{\r
+ Element root = loadElement(builder, url);\r
+ List<Element> result = getChildElemList(root, childName);\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * root要素をXMLリソースからロードする。\r
+ * @param builder DOMビルダ\r
+ * @param url URL\r
+ * @return root要素\r
+ * @throws IOException 入力エラー\r
+ * @throws SAXException XMLパースエラー\r
+ */\r
+ private static Element loadElement(DocumentBuilder builder, URL url)\r
+ throws IOException, SAXException{\r
+ InputStream istream = url.openStream();\r
+\r
+ Document document;\r
+ try{\r
+ document = builder.parse(istream);\r
+ }finally{\r
+ istream.close();\r
+ }\r
+\r
+ Element root = document.getDocumentElement();\r
+\r
+ return root;\r
+ }\r
+\r
+ /**\r
+ * root要素から子要素のリストを得る。\r
+ * @param root root要素\r
+ * @param childName 子要素のタグ名\r
+ * @return 子要素のリスト\r
+ */\r
+ private static List<Element> getChildElemList(\r
+ Element root, String childName){\r
+ NodeList nodeList = root.getElementsByTagName(childName);\r
+ int childNum = nodeList.getLength();\r
+\r
+ List<Element> result = new ArrayList<Element>(childNum);\r
+\r
+ for(int index = 0; index < childNum; index++){\r
+ Node node = nodeList.item(index);\r
+ Element element = (Element) node;\r
+ result.add(element);\r
+ }\r
+\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * XMLタグの必須属性値を得る。\r
+ * @param elem XML要素\r
+ * @param attrName 属性名\r
+ * @return 属性値\r
+ * @throws SAXException 必須属性が無かった。\r
+ */\r
+ static String attrRequired(Element elem, String attrName)\r
+ throws SAXException{\r
+ Attr attr = elem.getAttributeNode(attrName);\r
+ if(attr == null){\r
+ throw new SAXException("no attribute[" + attrName + "]");\r
+ }\r
+ String result = attr.getValue();\r
+ if(result == null){\r
+ throw new SAXException("no value[" + attrName + "]");\r
+ }\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * XMLタグの属性値を得る。\r
+ * @param elem XML要素\r
+ * @param attrName 属性名\r
+ * @return 属性値。なければnull\r
+ */\r
+ static String attrValue(Element elem, String attrName){\r
+ Attr attr = elem.getAttributeNode(attrName);\r
+ if(attr == null) return null;\r
+\r
+ String result = attr.getValue();\r
+\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * XML属性値からURIを展開する。\r
+ * @param elem XML国定義要素\r
+ * @param attrName 属性名\r
+ * @return URI\r
+ * @throws SAXException 属性が未定義もしくはURI形式を満たさない。\r
+ */\r
+ static URI attrToUri(Element elem, String attrName)\r
+ throws SAXException{\r
+ Attr attr = elem.getAttributeNode(attrName);\r
+ if(attr == null) return null;\r
+\r
+ String uriText = attr.getValue();\r
+ if(uriText == null) return null;\r
+\r
+ URI uri;\r
+ try{\r
+ uri = new URI(uriText).normalize();\r
+ }catch(URISyntaxException e){\r
+ throw new SAXException("illegal URI " + uriText, e);\r
+ }\r
+\r
+ return uri;\r
+ }\r
+\r
+}\r
-/*
- * License : The MIT License
- * Copyright(c) 2011 olyutorskii
- */
-
-package jp.sourceforge.jindolf.corelib;
-
-import java.util.GregorianCalendar;
-import java.util.TimeZone;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-/**
- *
- */
-public class DateUtilsTest {
-
- public DateUtilsTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() {
- }
-
- @After
- public void tearDown() {
- }
-
- /**
- * Test of parseISO8601 method, of class LandDef.
- */
- @Test
- public void testParseISO8601(){
- System.out.println("parseISO8601");
-
- CharSequence seq;
- long result;
-
- GregorianCalendar cal;
- cal = new GregorianCalendar();
- cal.clear();
-
- TimeZone tz;
- tz = TimeZone.getTimeZone("GMT+00");
- cal.setTimeZone(tz);
-
- seq = "1990-01-01T00:00:00Z";
- result = DateUtils.parseISO8601(seq);
- cal.set(1990, 1-1, 1, 0, 0, 0);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "1991-02-03T04:05:06Z";
- result = DateUtils.parseISO8601(seq);
- cal.set(1991, 2-1, 3, 4, 5, 6);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "2099-12-31T23:59:59Z";
- result = DateUtils.parseISO8601(seq);
- cal.set(2099, 12-1, 31, 23, 59, 59);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "1991-02-03T04:05:06+23";
- result = DateUtils.parseISO8601(seq);
- tz = TimeZone.getTimeZone("GMT+23");
- cal.setTimeZone(tz);
- cal.set(1991, 2-1, 3, 4, 5, 6);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "1991-02-03T04:05:06-23";
- result = DateUtils.parseISO8601(seq);
- tz = TimeZone.getTimeZone("GMT-23");
- cal.setTimeZone(tz);
- cal.set(1991, 2-1, 3, 4, 5, 6);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "1991-02-03T04:05:06+2345";
- result = DateUtils.parseISO8601(seq);
- tz = TimeZone.getTimeZone("GMT+2345");
- cal.setTimeZone(tz);
- cal.set(1991, 2-1, 3, 4, 5, 6);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "1991-02-03T04:05:06+23:45";
- result = DateUtils.parseISO8601(seq);
- tz = TimeZone.getTimeZone("GMT+2345");
- cal.setTimeZone(tz);
- cal.set(1991, 2-1, 3, 4, 5, 6);
- assertEquals(cal.getTimeInMillis(), result);
-
- seq = "!!!";
- try{
- result = DateUtils.parseISO8601(seq);
- fail();
- }catch(IllegalArgumentException e){
- // GOOD
- }
-
- return;
- }
-
-}
+/*\r
+ * License : The MIT License\r
+ * Copyright(c) 2011 olyutorskii\r
+ */\r
+\r
+package jp.sourceforge.jindolf.corelib;\r
+\r
+import java.util.GregorianCalendar;\r
+import java.util.TimeZone;\r
+import org.junit.After;\r
+import org.junit.AfterClass;\r
+import org.junit.Before;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+import static org.junit.Assert.*;\r
+\r
+/**\r
+ *\r
+ */\r
+public class DateUtilsTest {\r
+\r
+ public DateUtilsTest() {\r
+ }\r
+\r
+ @BeforeClass\r
+ public static void setUpClass() throws Exception {\r
+ }\r
+\r
+ @AfterClass\r
+ public static void tearDownClass() throws Exception {\r
+ }\r
+\r
+ @Before\r
+ public void setUp() {\r
+ }\r
+\r
+ @After\r
+ public void tearDown() {\r
+ }\r
+\r
+ /**\r
+ * Test of parseISO8601 method, of class LandDef.\r
+ */\r
+ @Test\r
+ public void testParseISO8601(){\r
+ System.out.println("parseISO8601");\r
+\r
+ CharSequence seq;\r
+ long result;\r
+\r
+ GregorianCalendar cal;\r
+ cal = new GregorianCalendar();\r
+ cal.clear();\r
+\r
+ TimeZone tz;\r
+ tz = TimeZone.getTimeZone("GMT+00");\r
+ cal.setTimeZone(tz);\r
+\r
+ seq = "1990-01-01T00:00:00Z";\r
+ result = DateUtils.parseISO8601(seq);\r
+ cal.set(1990, 1-1, 1, 0, 0, 0);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "1991-02-03T04:05:06Z";\r
+ result = DateUtils.parseISO8601(seq);\r
+ cal.set(1991, 2-1, 3, 4, 5, 6);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "2099-12-31T23:59:59Z";\r
+ result = DateUtils.parseISO8601(seq);\r
+ cal.set(2099, 12-1, 31, 23, 59, 59);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "1991-02-03T04:05:06+23";\r
+ result = DateUtils.parseISO8601(seq);\r
+ tz = TimeZone.getTimeZone("GMT+23");\r
+ cal.setTimeZone(tz);\r
+ cal.set(1991, 2-1, 3, 4, 5, 6);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "1991-02-03T04:05:06-23";\r
+ result = DateUtils.parseISO8601(seq);\r
+ tz = TimeZone.getTimeZone("GMT-23");\r
+ cal.setTimeZone(tz);\r
+ cal.set(1991, 2-1, 3, 4, 5, 6);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "1991-02-03T04:05:06+2345";\r
+ result = DateUtils.parseISO8601(seq);\r
+ tz = TimeZone.getTimeZone("GMT+2345");\r
+ cal.setTimeZone(tz);\r
+ cal.set(1991, 2-1, 3, 4, 5, 6);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "1991-02-03T04:05:06+23:45";\r
+ result = DateUtils.parseISO8601(seq);\r
+ tz = TimeZone.getTimeZone("GMT+2345");\r
+ cal.setTimeZone(tz);\r
+ cal.set(1991, 2-1, 3, 4, 5, 6);\r
+ assertEquals(cal.getTimeInMillis(), result);\r
+\r
+ seq = "!!!";\r
+ try{\r
+ result = DateUtils.parseISO8601(seq);\r
+ fail();\r
+ }catch(IllegalArgumentException e){\r
+ // GOOD\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+}\r