3

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

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

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

しかし、私は 10:30 だけを単独で解析したいと考えています。次のコードは機能しません。

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

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

4

4 に答える 4

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 を想定します)。

于 2008-09-17T20:12:48.553 に答える
2

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

  • DateField.stringToDate(valueString:String、inputFormat:String):Date
  • DateField.dateToString(value:Date、outputFattern:String):String

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

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

于 2008-09-19T09:18:56.690 に答える
1

「01/01/2000」を時間文字列の先頭に追加してから、Date を適用することを検討しましたか?

あるいは、入力を受け取って : で分割し、整数に変換できる文字列の配列を提供するトークナイザーがおそらくあります。トークナイザーも書くのは難しくありませんし、flex にトークナイザーがなくても楽しいものです。

-アダム

于 2008-09-17T16:43:29.507 に答える
0

特定の質問に答えるには:いいえ、やりたいことを行うためのライブラリ関数はありませんが、ISO形式、ドイツ形式、スウェーデン形式、年が含まれる日付を解析するためのライブラリ関数はありませんローマ数字など

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

于 2008-09-18T11:33:11.897 に答える