【AS3】RSSの日付を変換

| | トラックバック(0)
RSSから取得できる日付って
Thu, 08 Oct 2009 14:34:01 +0900
こんな感じでこのままだと使いづらいのでよくある形式に変換するクラスを作りました。

使い方は以下のようにします。

var rssEx:RssDateExchange = new RssDateExchange("Thu, 08 Oct 2009 14:34:01 +0900");
trace(rssEx.start());

でトレースした結果は→「 2009/10/8 (木) 」です。

・ソース

package
{
	
	public class RssDateExchange 
	{
		private var dateList:Array = new Array();;
		private var monthList:Array = new Array();
		private var dayList:Array = new Array();
		private var jDayList:Array = new Array();
		private var gmt:Number;
		private var n:Number;
		public static var dateStyle:String;
		
		public function RssDateExchange(date:String)
		{
			dateList = date.split(" ");
			trace(dateList)
		}
		
		public function start():String {
			
			monthList = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
			dayList = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
			jDayList = ["日", "月", "火", "水", "木", "金", "土"];
			
			var year:Number = new Number(dateList[3]);
			for (var n:Number = 0; n < monthList.length; n++) {
				if (dateList[2] == monthList[n]) {
					var month:Number = n;
					break;
				}
			}
			
			var date:Number = new Number(dateList[1]);
			for (var n1:Number = 0; n1 < dayList.length; n1++) {
				var day1:String = dateList[0].substr(0, 3);
				if (day1 == dayList[n]) {
					var day:Number = n;
					break;
				}
			}
			
			var timeList:Array = dateList[4].split(":");
			var hour:Number = strToNumber(timeList[0]);
			var GMT:Number = gmtToNumber(dateList[5]);
			var minute:Number = strToNumber(timeList[1]);
			var second:Number = strToNumber(timeList[2]);
			var d:Date = new Date(year, month, date, hour+GMT, minute, second);
			dateStyle = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate()+" ("+jDayList[d.getDay()]+")";
			return dateStyle;
		}
		
		private function strToNumber(str:String):Number {
			
			if (str.substr(0, 1) == "0") {
				n = Number(str.substr(1, 1));
			} else {
				n = Number(str.substr(0, 2));
			}
			return n;
		}
		
		private function gmtToNumber(str:String):Number {
			str = str.substr(0, 3);
			var n:Number = strToNumber(str.substr(1, 2));
			if (str.substr(0, 1) == "+") {
				gmt = n;
			} else {
				gmt = -n;
			}
			return gmt;
		}
		
	}
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: 【AS3】RSSの日付を変換

このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/82

このブログ記事について

このページは、が2009年10月15日 16:17に書いたブログ記事です。

ひとつ前のブログ記事は「【AS3】サムネイルをドラッグするとマップがスクロールするクラス」です。

次のブログ記事は「[映画] DISTRICT 9」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。