如何轉換日期至POSIX時間?Freemarker:從日期轉換爲POSIX時間
日期格式不重要(「2016-02-12」,「2017年5月3日7:45:00」以及其他)。
ps。我需要得到過去的一天,所以我決定將其轉換爲POSIX和86400之間。減去
如何轉換日期至POSIX時間?Freemarker:從日期轉換爲POSIX時間
日期格式不重要(「2016-02-12」,「2017年5月3日7:45:00」以及其他)。
ps。我需要得到過去的一天,所以我決定將其轉換爲POSIX和86400之間。減去
如果你有值作爲String
(不是java.util.Date
),首先你需要將其轉換爲Date類型或值日期時間(基本上爲java.util.Date
)。分別完成myString?date
或myString?datetime
,並且date_format
或datetime_format
FreeMarker配置設置必須與myString
中使用的格式匹配。或者,您可以指定臨時格式,例如myString?datetime('MMM d, yyyy h:mm:ss a')
。有關日期/時間/日期時間格式字符串的更多信息,請參閱http://freemarker.org/docs/ref_directive_setting.html#topic.dateTimeFormatSettings。此外,由於示例字符串中沒有時區信息,因此必須確保將time_zone
配置設置設置爲應該解釋字符串的時區。
現在您已經有了日期或日期時間值,可以將它自UNIX時代以來被轉換爲毫秒秒作爲myDateOrDateTime?long
。儘管POSIX使用秒,所以你需要(millisSinceEpoch/1000)?floor
。
所以最長的表達式就像myString?datetime('MMM d, yyyy h:mm:ss a')?long/1000)?floor
,但是肯定你會想讓FreeMarker #function
出其中。
另外請注意,默認情況下FreeMarker打印人類的數字,所以它可能會打印類似1,493,865,900
。爲防止出現這種情況,請在表達式末尾應用?c
。
對,對於普通日期它可以工作,但不適用於.now – Simpson
對於'.now',它更容易,因爲它已經是「日期時間」,而不是字符串:'(.now?long/1000) – ddekany