Tôi đã được cấp mã sử dụng hàm dateTimeFormat. Nhà phát triển ban đầu đã sử dụng mặt nạ "MM-HH-YY-dd-NN". Mã này hoạt động trên máy của anh ta. Và nó hoạt động trên máy chủ thử nghiệm của chúng tôi. Nhưng nó không hoạt động trên máy cục bộ của tôi. Tôi chỉ có thể làm cho nó hoạt động khi tôi thay đổi mặt nạ thành "MM-HH-yy-dd-NN";Mẫu mặt nạ hợp lệ cho dateTimeFormat
Lưu ý sự khác biệt ở đây là trường hợp trên "YY" và chữ thường "yy"
Trong quá trình tìm tài liệu tại https://wikidocs.adobe.com/wiki/display/coldfusionen/DateTimeFormat có vẻ như thấp hơn trường hợp yy là cách hỗ trợ chính thức làm việc.
Có ai biết tại sao YY sẽ được hỗ trợ trong một số trường hợp chứ không phải người khác? Tôi nghi ngờ nó có thể là một số mã địa phương hóa một nơi nào đó, nhưng tôi không tìm thấy bất kỳ sự khác biệt trong quản trị CF của tôi và một trên máy chủ thử nghiệm. Có cái gì tôi có thể làm trên máy của tôi để làm cho công việc YY?
máy của tôi là một Windows 7 máy ảo chạy trên Mac trong khi máy chủ là một máy chủ Windows 2008.
My JVM là 1.6.0_29 trong khi máy chủ đang chạy 1.7.0
Are những khác biệt này đủ để giải thích vấn đề?
Dưới đây là một số mã đơn giản để kiểm tra:
<cfscript>
testTime=now();
lowermask= "MM-HH-yy-dd-NN";
uppermask= "MM-HH-YY-dd-NN";
result = {
lower=dateTimeFormat(testTime, lowermask)
,upper=dateTimeFormat(testTime, uppermask)
};
writedump(result);
</cfscript>
Dường như vấn đề là trong phiên bản Java cơ bản. Lỗi tôi nhận được là:
java.lang.IllegalArgumentException: Illegal pattern character 'Y'
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:768)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:575)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:500)
at coldfusion.util.DateUtils.getCFDateTimeFormat(DateUtils.java:673)
at coldfusion.util.DateUtils.formatDateTime(DateUtils.java:942)
at coldfusion.runtime.CFPage.LSDateTimeFormat(CFPage.java:1750)
at coldfusion.runtime.CFPage.LSDateTimeFormat(CFPage.java:1742)
at coldfusion.runtime.CFPage.DateTimeFormat(CFPage.java:1722)
at cftemp2ecfm333879290.runPage(C:\inetpub\wwwroot\temp.cfm:7)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:64)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:449)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Mức phát hành và bản vá chính xác của CF có lẽ có liên quan hơn so với các phiên bản JVM và OS ở đây. –
@AdamCameron Cả hai đều được cập nhật. ColdFusion 10,287689. HotFix 13 –
@Adam, nó sẽ không làm tôi ngạc nhiên nếu vấn đề có liên quan đến sự khác biệt trong phiên bản JVM. Đã có một vài mâu thuẫn khác với hành vi ColdFusion khi di chuyển từ Java 6 đến 7. –