3


0

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

"9/17/2008 10:30"のようなものを使ってDateオブジェクトに解析できることを私は知っています

var date:日付=新しい日付(Date.parse( "9/17/2008 10:30");

しかし、私は10:30だけを自分で解析したいのです。 次のコードは機能しません。

var date:日付=新しい日付(Date.parse( "10:30");

カスタムRegExを使用してこれをかなり簡単に実行できることはわかっていますが、これは既存のFlex APIを使用して可能になるはずのようです。

4 Answer


3


あなたが指定した正確なフォーマットを使用しなければならないなら、あなたはそれをあなた自身で解析する必要があります。

これは簡単な例です(テストされていません)。

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])。

時間が24クロックで表現されていない場合、AMまたはPMをチェックする方法はありません(コードはAMを想定します)。


2


シンプルで無料の解決策として、DateFieldのいくつかの静的メソッドを使うことができます。

  • DateField.stringToDate(valueString:文字列、inputFormat:文字列):日付

  • DateField.dateToString(値:日付、outputFattern:文字列):文字列

しかし残念ながら、時間/分/秒(単なる日付)をサポートしていません。

あなたの特定のケースでは:Dateオブジェクトは常に "date"情報も含みます。 それが重要ではない場合は、解析する前に標準の日付文字列を単純に連結できませんでしたか。


1


時間列の先頭に「01/01/2000」を付けてからDateを適用することを検討しましたか。

代わりに、おそらく入力でそれを分割するトークナイザがあるでしょう:あなたが整数に変換できる文字列の配列を与える。 トークナイザも書くのが難しくなく、flexに存在しなければ楽しいかもしれません。

-アダム


0


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

なぜ正規表現を使わないのですか? それが彼らの目的です。