从字符串中删除时区或在 coldfusion 中格式化 HTTP TIME STRING
Remove time zones from a string or format HTTP TIME STRING in coldfusion
我正在使用 timeFormat()
格式化包含 11:00 PM
或 23:00:00
的普通字符串,如下所示:
<cfset local.timeString = "11:00 PM">
<cfdump var="#local.timeString#">
<cfset local.newTimeString = timeFormat(local.timeString, "HH:mm:ss")>
<cfdump var="#local.newTimeString#">
输出:
11:00 PM 23:00:00
但在一种情况下,我遇到了一个时间字符串,其中还包含这样一个时区:11:00 PM EDT
,所以当我尝试使用 timeFormat
格式化此字符串时,我遇到了错误哪个是正确的。
11:00 PM EDT is an invalid date or time string
这种类型的字符串可以使用GetHttpTimeString生成。
我需要使用这样的东西吗?这不是正确的方法。只是认为这没有找到其他解决方案。
<cfset local.newTimeString = left(local.timeString
, len(local.timeString) - len(listLast(local.timeString," "))
)>
是否有任何其他函数可以像这样格式化字符串。
请帮忙。提前致谢。
如果内置格式化功能不起作用,您可以向下搜索 java 并使用 SimpleDateFormat class.
// "hh" - 12 hour clock, "HH" - 24 hour clock
sdf = CreateObject("java","java.text.SimpleDateFormat").init("hh:mm aa zzz");
testdate = "11:00 PM EDT";
writeDump(sdf.parse(testdate)); // returns {ts '1970-01-01 22:00:00'}
尝试使用正则表达式替换时间字符串中的时区。这不是正确的方法。但是你可以通过这个方法找到解决办法。
<cfset local.timeString = "11:00 PM EDT">
<cfset local.newTimeStringArray = REMatch("((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\s?(?:am|AM|pm|PM)))",local.timeString) />
<cfdump var="#local.newTimeStringArray[1]#">
<cfset local.newTimeString = timeFormat(local.newTimeStringArray[1], "HH:mm:ss")>
<cfdump var="#local.newTimeString#">
希望对您有所帮助。
我正在使用 timeFormat()
格式化包含 11:00 PM
或 23:00:00
的普通字符串,如下所示:
<cfset local.timeString = "11:00 PM">
<cfdump var="#local.timeString#">
<cfset local.newTimeString = timeFormat(local.timeString, "HH:mm:ss")>
<cfdump var="#local.newTimeString#">
输出:
11:00 PM 23:00:00
但在一种情况下,我遇到了一个时间字符串,其中还包含这样一个时区:11:00 PM EDT
,所以当我尝试使用 timeFormat
格式化此字符串时,我遇到了错误哪个是正确的。
11:00 PM EDT is an invalid date or time string
这种类型的字符串可以使用GetHttpTimeString生成。
我需要使用这样的东西吗?这不是正确的方法。只是认为这没有找到其他解决方案。
<cfset local.newTimeString = left(local.timeString
, len(local.timeString) - len(listLast(local.timeString," "))
)>
是否有任何其他函数可以像这样格式化字符串。
请帮忙。提前致谢。
如果内置格式化功能不起作用,您可以向下搜索 java 并使用 SimpleDateFormat class.
// "hh" - 12 hour clock, "HH" - 24 hour clock
sdf = CreateObject("java","java.text.SimpleDateFormat").init("hh:mm aa zzz");
testdate = "11:00 PM EDT";
writeDump(sdf.parse(testdate)); // returns {ts '1970-01-01 22:00:00'}
尝试使用正则表达式替换时间字符串中的时区。这不是正确的方法。但是你可以通过这个方法找到解决办法。
<cfset local.timeString = "11:00 PM EDT">
<cfset local.newTimeStringArray = REMatch("((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\s?(?:am|AM|pm|PM)))",local.timeString) />
<cfdump var="#local.newTimeStringArray[1]#">
<cfset local.newTimeString = timeFormat(local.newTimeStringArray[1], "HH:mm:ss")>
<cfdump var="#local.newTimeString#">
希望对您有所帮助。