• ベストアンサー

rdfから取得したW3CDTF形式の日付表示形式を変更したい

time_xml.firstChild.childNodes[i].childNodes[5].firstChild.nodeValue (dc:date内)から参照する 2006-11-29T10:45+09:00(YYYY-MM-DDThh:mm:ssTZD) といったW3CDTF形式の日時データを 2006/11/29 10:45 のように表示形式を変換してtimetextというダイナミックテキストに 出力したいと考えていますがどうしてもうまくいきません。 どうか変換する方法を教えて下さい。環境はflash8です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

W3CDTF形式 と言っても, XMLデータに表されているもの自体は文字列ですから, 文字列として素直に扱えば良いのではないでしょうか。 変換と言うより, ”2006-11-29T10:45+09:00” この文字列で,  →必要なのは前から 16 文字   →ハイフン(-)をスラッシュ(/)に置換    → T を半角スペースに置換 をすれば良いわけです。 「timetext」 という "インスタンス名"(変数名ではありません) の ダイナミックテキストのテキストフィールドをステージ上に用意した場合, フレームのスクリプトを次のようにすれば良いと思います。 //////////////////////////////////////////////////////////////////////// var myT = time_xml.firstChild.childNodes[i].childNodes[5].firstChild.nodeValue; var TArr = new Array(myT.substr(0, 16).split("-").join("/").split("T").join(" ")); _root.timetext.text = TArr; //////////////////////////////////////////////////////////////////////// たった3行のスクリプトです。 スクリプトは短くても, 説明すれば長いのですが。 1つの配列を用意して, 置換したい文字列を配列のエレメント(要素)として代入し, エレメントの区切りを入れたり(split),結合させたり(join)します。 そのとき, 区切り文字(列)を指定したり, 結合させるときに間に挟む文字(列)を指定してやると, それが置換となります。 同じ事を行を分けて書けば次のようになります。 //////////////////////////////////////////////////////////////////////// var myT = time_xml.firstChild.childNodes[i].childNodes[5].firstChild.nodeValue; var TArr = new Array(); TArr = myT.substr(0, 16); TArr = TArr.split("-"); TArr = TArr.join("/"); TArr = TArr.split("T"); TArr = TArr.join(" "); _root.timetext.text = TArr; //////////////////////////////////////////////////////////////////////// つまり,  2006-11-29T10:45+09:00    ↓.substr(0, 16)  2006-11-29T10:45    ↓.split("-")  2006, 11, 29T10:45    ↓.join("/")  2006/11/29T10:45    ↓.split("T")  2006/11/29, 10:45    ↓.join(" ")  2006/11/29 10:45    ↓  timetext に表示 というわけです。

din1451
質問者

お礼

おかげさまで表示する事ができました。 非常に丁寧なご説明まで頂き本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Flashにブログ更新情報を表示する

    Flash初心者です。 Flashにブログのatom(rss.xml)を読み込み ブログタイトルや、最新の記事タイトル3つを表示させようと思っています。 ちょうど良いサイトがあり、 http://allabout.co.jp/gs/flash/closeup/CU20090926E/ に従い、1フレーム目に ============================================================ System.useCodepage = true; newsData = new XML(); newsData.ignoreWhite = true; newsData.load("(自身のブログTOPへのフルパス)/atom.xml"); ↑(GoogleのBlogger)のrss.xmlをフルパスで指定しました。↑ ============================================================ と指定し、 10フレーム目に ============================================================ //サイトのタイトルを取得 siteTitle = newsData.firstChild.childNodes[0].childNodes[2].nodeValue; //サイトのURLを取得 siteUrl = newsData.firstChild.childNodes[0].childNodes[6].nodeValue; //記事タイトルを格納する変数 item1Title = newsData.firstChild.childNodes[0].childNodes[13].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[13].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[14].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[14].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[15].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[15].childNodes[10].nodeValue; //整形してテキストボックスに表示 // site.htmlText = "<b><a href='" + siteUrl + "'>" + siteTitle + "</a></b>"; item.htmlText = "<b>新着情報</b>" if(item1Title != undefined){ item.htmlText += "<a href='" + item1Url + "'>" + item1Title + "</a>"; } if(item2Title != undefined){ item.htmlText += "<a href='" + item2Url + "'>" + item2Title + "</a>"; } if(item3Title != undefined){ item.htmlText += "<a href='" + item3Url + "'>" + item3Title + "</a>"; } ============================================================ と指定したxmlに合わせてxmlの内容の取り出し指定を変更しましたが、 「URL '(自身のブログTOPへのフルパス)/atom.xml' を開く処理のエラー」 という出力エラーが出てしまいます。 理解せずに作っているので、何が悪いのかまったくわかりません。 よろしくお願いいたします。

  • xmlから取得したアドレスにリンクを貼りたい。

    xmlから取得したページアドレスをダイナミックテキストに表示、リンクを貼りたいのですがうまくいきません…。 htmlTextを使用してかなり強引に記述しましたがやっぱり不可能でした。(本来アドレスを指定するべきところにノードの参照を直接書いた) dataText.html=true; dataText.condenseWhite=false; dataText.htmlText = <a href='weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue'> weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue </a> やりたいことは 1・xmlから取得したアドレスをテキスト表示。 2・そのアドレスと同じアドレスのリンクをそのテキストに貼る。 です。 1だけであればtextで表示指定するだけなので出来たのですが 1と2を兼ね合おうとするとどうしてもうまくいきません。 htmlTextではできないのでしょうか? 変数などで解決できるのであればその方法を教えて頂きたいです。 flashのバージョンは8です。 初歩的な質問ですいません。よろしくお願いします。

    • ベストアンサー
    • Flash
  • Excelの日付の表示形式の変換方法について

    次のExcelの日付の表示形式の変換方法について、お分かりになる方がいれば是非教えてください。 通常の表示形式(「yyyy/mm/dd」など)を、「yyyy-mm-ddT00:00:00Z」に変換するにはどのような方法があるでしょうか? ネットで検索しても分からず、もしご教授頂ければ幸いです。 どうぞ宜しくお願いいたします。

  • 【Excel】 表示形式のyyyyを2005で表示したい。

    こんにちは E列は、他のセルを参照し、その内容から日時を表示しています。 (E列の表示形式は「m/d h:mm;@」です。) これを「yyyy/m/d h:mm;@」に変更したところ参照するセルに 年のデータが無いために先月の分が 2006/12/31 12:30 というふうになってしまいます。 これを今から「yyyy/m/d h:mm;@」に変更し2005/12/31 12:30 にするにはどうしたら良いでしょうか。

  • 日付形式の変換

    はじめまして Perlで日付形式の変換をしたいと思っています。 RFC1123形式(2 Mar 2006 04:28:25 -0800)から yyyy/mm/dd hh:mm:ssの形式に変換したいのです。 色々と調べましたが、適当なヒントがあるところがありません でした。 どうぞ、関連サイトでも構いませんので、ご回答お願いいたします。

    • ベストアンサー
    • Perl
  • EXCEL 日付の入力形式

    こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。

  • 地域言語オプションの日付形式を用いての日付編集方法

    コントロールパネルの地域と言語オプションから 地域オプションのカスタマイズ内の日付タブにある 短い形式を元に日付の編集を行おうとしています。 しかしこのまま短い形式をしようすると、 「年月日」の形式を取得してしまいます。 今回の用件では「年月」のみ必要なので「日」の形式を除外した形式で 日付の編集を行う必要があります。 ただしコントロールパネルから日付の形式が変更できる為、 各クライアントの端末毎に日付の形式が異なる為(※1) 単純に文字列の編集で「年月」を取得することが出来ず困っております。 ※1 クライアント毎の日付形式の例と行いたい変換後の形式の例 短い形式 → 変換後の形式 yyyy/MM/dd → yyyy/MM yy/M/d   → yy/M yy/MM/dd' ('ddd')' → yy/MM/ dd/MM/yyyy → dd/yyyy 開発言語は VisualStudio2008 C# で開発を行っています。 皆さんのお力をお貸しいただけないでしょうか。

  • CSVファイルのエクスポート項目の日付表示形式

    顧客ファイルをショッピングカートからエクスポートして、CRMツールにインポートする作業を行っています。 その際に、ショッピングカート側から配送日の日付の表示形式が例えば「2014/4/13 10:48:00」であれば、「20140413104800」(YYYYMMDDhhmmss)という表示形式でしかエクスポートができません。その一方で、受ける側のCRMツールは日付の取り込み形式が「yyyy/mm/dd hh:mm」に限定されています。 そのため「YYYYMMDDhhmmss」の表示形式を「yyyy/mm/dd hh:mm」に変更する必要があります。ソフトにはExcel2013を使用しており、データ数は1日50~60件ほどのため、一括変換する方法を模索しています。 ショッピングカート側からダウンロードしたCSVファイルをExcel2013で取り込み、CRMツールで取り込み可能な「yyyy/mm/dd hh:mm」の書式に変換する方法を教えて下さい。

  • 日付が####と表示される

    いつもお世話になっています。 Excelのマクロ部分で現在日時を表示させたいのですが、なぜか "#####"で表示されてしまいます・・・。 Range("G1").Value=Format(Date,"yyyy/mm/dd") & Space(1) & Format(Time,"hh:mm") MsgBox "日時:" & Range("G1").Value とやっています。 MsgBoxでは『日時:2002/06/16 17:22:00』と表示されるのに、実際の表示は "#####"となっています。 G1にカーソル(?)をあてても"2002/6/14 17:34:00"となっています。 別のファイルではちゃんと表示されているのに、なぜこんなことが起きるのでしょうか? (セルのオプション設定など見てみましたが、同一でした) どうすれば日にちと時刻(秒は表示させず)をExcelシートに表示させることが できるのでしょうか? ご存知の方、教えてください!!

  • VBscriptでXMLデータの抽出に関する質問

    教えて下さい。以下のようなXMLファイルがあります。 <?xml version="1.0" encoding="Shift-JIS"?> <ROOT> <INFO> <NO>0001</NO> <NAME>ABC</NAME> <COMMENT> </COMMENT> <AGE>30</AGE> </INFO> </ROOT> これを以下のようにVBScriptにてデータを取り出したいです。 Dim DOM, docRoot, node, nodeList, i, m Dim objADO, objADO2 Dim objRS Dim sqlstmt, strSQL Dim no, comment 'DOMオブジェクト生成 Set DOM = CreateObject("Microsoft.XMLDOM") '同期モード DOM.async = True 'XMLを読み込む DOM.load("11.xml") 'ルートセット Set docRoot = DOM.documentElement 'ノードの設定 Set nodeList = docRoot.selectNodes("/ROOT/INFO") 'ループ For Each node In nodeList For i = 0 to node.ChildNodes.length - 1 Select case node.childNodes(i).nodeName case "NO" no = node.childNodes(i).firstChild.nodeValue case "COMMENT" comment = node.childNodes(i).firstChild.nodeValue End select Next Next ところがCOMMENTタグのようにデータが空のものがあると 「オブジェクトがありません」とエラーになります。 if Not IsNull(node.childNodes(i).firstChild.nodeValue) then というようにもやってみましたが、これでも同じエラーとなってしまいます。 何か方法はないでしょうか?アドバイスを宜しくお願いします。

    • ベストアンサー
    • XML