日付からPOSIX時間に変換する方法ですか?Freemarker:日付からPOSIX時間に変換する
日付の形式は重要ではありません(「2016-02-12」、「2017年5月3日7:45:00 PM」など)。
ps。私は過去の日にする必要があるので、私はそれをposixに変換して86400を引くことにしました。
日付からPOSIX時間に変換する方法ですか?Freemarker:日付からPOSIX時間に変換する
日付の形式は重要ではありません(「2016-02-12」、「2017年5月3日7:45:00 PM」など)。
ps。私は過去の日にする必要があるので、私はそれをposixに変換して86400を引くことにしました。
String
(java.util.Date
ではない)の値を持っている場合は、まずそれを日付型の値に変換するか、日時(基本的にjava.util.Date
まで)。これはそれぞれmyString?date
またはmyString?datetime
として行われ、date_format
またはdatetime_format
FreeMarkerの設定は、myString
で使用されている形式と一致する必要があります。あるいは、形式ad-hocを指定することもできます(例:myString?datetime('MMM d, yyyy h:mm:ss a')
)。日付/時刻/日時書式文字列の詳細については、http://freemarker.org/docs/ref_directive_setting.html#topic.dateTimeFormatSettingsを参照してください。また、サンプル文字列にタイムゾーン情報がないため、time_zone
構成設定が文字列を解釈するタイムゾーンに設定されていることを確認する必要があります。
日付または日時の値があるので、というUNIXエポックからミリ秒秒に変換できます。 POSIXは秒を使用するので、(millisSinceEpoch/1000)?floor
が必要です。
したがって、できるだけ長い表現はmyString?datetime('MMM d, yyyy h:mm:ss a')?long/1000)?floor
のようですが、確かにFreeMarkerを#function
にしたいと考えています。
FreeMarkerはデフォルトで人間の数字を表示するので、1,493,865,900
のようなものが出力されることに注意してください。これを防ぐには、式の最後に?c
を適用します。
大丈夫ですが、普通の日付では動作しません。 – Simpson
'.now'の場合、文字列ではなく、すでに"日時 "であるため、さらに簡単です:'(.now?long/1000)?floor' – ddekany