2008-09-17 15 views
3

標準ライブラリを使用してHH:MMという形式の文字列をDate(または他の)オブジェクトに解析する方法はありますか?時間解析(フレックス)

私は

var date:Date = new Date(Date.parse("9/17/2008 10:30"); 

を使用してDateオブジェクトに「2008年9月17日10時30分」のようなものを解析できることを知っているしかし、私は、それ自体でちょうど10時30分を解析します。次のコードは動作しません。

var date:Date = new Date(Date.parse("10:30"); 

これを行うにはカスタムRegExを使用することができますが、これは既存のFlex APIを使用して行う必要があるようです。

答えて

0

具体的な質問に答えるには、いいえ、やりたいことをするためのライブラリ機能はありませんが、ISO形式、ドイツ形式、スウェーデン形式、日付の構文解析のライブラリ関数はありません年はローマ数字などです。

なぜ正規表現を使用しないのですか?それが彼らのためのものです。

+3

あなたは彼に質問をして馬鹿に見えるようにします...これは不当です。 ほとんどの言語には、少なくとも日時の解析用のライブラリがあります。そのため、Flexがそのような機能をサポートしていると考えると、かなり妥当です。 –

+1

FLEX日付オブジェクトは恐ろしいものです。彼らは本当にこの「企業」を価値あるものと呼んでいきたいと思いますか?彼らはこの分野での試合をひどく進める必要があります。 – D3vtr0n

1

時間文字列に "01/01/2000"を追加してDateを適用すると考えましたか?

代わりに、入力を受け取り、次のところで分割するトークナイザがあります:整数に変換できる文字列を与えます。 tokenizerは書くのも難しくないし、フレックスに存在しなければ楽しいかもしれない。

あなたが指定した正確なフォーマットを使用する必要がある場合-Adam

3

は、その後、あなたはそれを自分で解析する必要があります。時間は24クロックで表現されていない場合は、AMまたはPMをチェックする方法は、(コードがAMを前提とします)が存在しない

var str:String = "9/17/2008 10:30" 

var items:Array = str.split(" "); 
var dateElements:Array = items[0].split("/"); 
var timeElements:Array = items[1].split(":"); 

var n:Date = new Date(dateElements[2], 
         dateElements[0], 
         dateElements[1]. 
         timeElements[0], 
         timeElements[1]); 

:ここ

は簡単な例(テストしていない)です。

+0

このコードは不要です。私が与えた(下に貼り付けた)元の例はうまく動作します。 var date:Date = new Date(Date.parse( "9/17/2008 10:30"); –

+1

Dateコンストラクタのパラメータに小さな誤字があります。dateElements [1]の後にピリオドをカンマ(つまり、** dateElements [1]。** - > ** dateElements [1]、**) – cbranch

+1

もう1つ重要な問題があります。日付コンストラクタに渡された月から – cbranch

2

シンプルで無料のソリューションとして、あなたがDateFieldのいくつかの静的メソッドを使用することができます。

  • DateField.stringToDate(ここで、valueString:文字列、のInputFormat:文字列):日
  • DateField.dateToString(値: Date、outputFattern:String):String

残念ながら、残念ながら時間/分/秒(日付のみ)はサポートされていません。

具体的には、Dateオブジェクトには常に「日付」情報も含まれています。重要でない場合は、解析する前に標準の日付文字列を連結することはできませんでしたか?

関連する問題