2015-03-02 42 views
1

我有這樣的字符串:「{TS‘2015年3月2日12:00:00’}」(variables.fl_dt),我試圖用日期格式轉換:CFML問題與日期面具

#DateFormat("#variables.fl_dt#", "yyyy.MM.dd 'at' HH:nn:ss")# 

除了會議紀要:2015.03.02在12:nn:00之外,一切正常。在Adobe的網站上,「nn」代表會議紀要,但似乎在這裏不起作用。有任何想法嗎?

+3

你能指出它說:'nn'是在'日期格式()'文檔頁面(HTTPS分鐘:// wikidocs。 adobe.com/wiki/display/coldfusionen/DateFormat)?你確定你沒有查看'dateTimeFormat()'的文檔嗎?這就是你想在這裏使用 – 2015-03-02 09:07:25

+0

你確定它是一個字符串,而不是一個日期時間對象? – 2015-03-02 13:23:43

+0

根據示例代碼,您肯定正在查看[DateTimeFormat](https://wikidocs.adobe.com/wiki/display/coldfusionen/DateTimeFormat)文檔。如以下注釋中所述,示例代碼在日期和時間之間不輸出字符串字符「at」。 CF10將「t」解釋爲時間標記。不知道是否有辦法逃避它。 – Leigh 2015-03-03 03:22:51

回答

4

DateFormat沒有時間模式。使用DateFormat和TimeFormat函數可以獲得請求的結果。

<cfset result = DateFormat(variables.fl_dt, "yyyy.MM.dd") & " at " & 
       TimeFormat(variables.fl_dt, "HH:nn:ss") /> 
2

看看Adam的評論。 dateTimeFormat()會給你你需要的。

#DateTimeFormat(variables.fl_dt, "yyyy.MM.dd 'at' HH:nn:ss")# 

顯示 2015年3月2日在6時03分10秒

+0

在CF10和CF11下,此代碼不會在日期和時間之間添加'at'。 – 2015-03-02 12:18:37

+0

這是因爲't'是時間標記的特殊掩碼字符。提問者可能從[Adobe的文檔](https://wikidocs.adobe.com/wiki/display/coldfusionen/DateTimeFormat)獲得了原始示例 - 不幸的是 - 這是錯誤的。 – Leigh 2015-03-02 15:29:14

+0

我個人不會使用'at',但它是在問題中。我沒有在Adobe CF上進行測試。工作於Lucee 4.5.1.003。下一次我看到Adobe提到我要麼測試Adobe CF,要麼提到測試的結果。 – Mike 2015-03-02 16:42:28