NIHVIVO-1665 Fixed error introduced in r7088 in display of standard xsd-formatted datetime values
This commit is contained in:
parent
e176d1f39f
commit
445a4eff11
1 changed files with 7 additions and 12 deletions
|
@ -100,27 +100,21 @@
|
||||||
<#-- Apply a precision and format type to format a datetime -->
|
<#-- Apply a precision and format type to format a datetime -->
|
||||||
<#function formatXsdDateTime dateTimeStr precision="" formatType="short">
|
<#function formatXsdDateTime dateTimeStr precision="" formatType="short">
|
||||||
|
|
||||||
<#-- First convert the string to a datetime object.
|
<#-- First convert the string to a format that Freemarker can interpret as a datetime.
|
||||||
For now, strip away time zone rather than displaying it. -->
|
For now, strip away time zone rather than displaying it. -->
|
||||||
<#local dateTimeStr = dateTimeStr?replace("T", " ")?replace("Z.*$", "", "r")>
|
<#local dateTimeStr = dateTimeStr?replace("T", " ")?replace("Z.*$", "", "r")?trim>
|
||||||
|
|
||||||
<#local dateTimeStringFormat = "yyyy-MM-dd HH:mm:ss">
|
|
||||||
|
|
||||||
<#-- If a non-standard datetime format (e.g, "2000-04" from
|
<#-- If a non-standard datetime format (e.g, "2000-04" from
|
||||||
"2000-04"^^<http://www.w3.org/2001/XMLSchema#gYearMonth>), just
|
"2000-04"^^<http://www.w3.org/2001/XMLSchema#gYearMonth>), just
|
||||||
return the string without attempting to format. Possibly this should
|
return the string without attempting to format. Possibly this should
|
||||||
be handled in Java by examining the xsd type and making an appropriate
|
be handled in Java by examining the xsd type and making an appropriate
|
||||||
conversion. -->
|
conversion. -->
|
||||||
<#if ! dateTimeStr?matches(dateTimeStringFormat)>
|
<#if ! dateTimeStr?matches("(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})")>
|
||||||
<#return dateTimeStr>
|
<#return dateTimeStr>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#-- Convert the string to a datetime object. -->
|
<#-- Convert the string to a datetime object. -->
|
||||||
<#local dateTimeObj = dateTimeStr?datetime(dateTimeStringFormat)>
|
<#local dateTimeObj = dateTimeStr?datetime("yyyy-MM-dd HH:mm:ss")>
|
||||||
|
|
||||||
<#if dateTimeObj == null>
|
|
||||||
<#return "non-standard datetime string">
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<#-- If no precision is specified, assign it from the datetime value.
|
<#-- If no precision is specified, assign it from the datetime value.
|
||||||
Pass dateTimeStr rather than dateTimeObj, because dateTimeObj
|
Pass dateTimeStr rather than dateTimeObj, because dateTimeObj
|
||||||
|
@ -138,7 +132,9 @@
|
||||||
|
|
||||||
<#function getPrecision dateTime>
|
<#function getPrecision dateTime>
|
||||||
|
|
||||||
|
<#-- We know this will match because the format has already been checked -->
|
||||||
<#local match = dateTime?matches("(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})")>
|
<#local match = dateTime?matches("(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})")>
|
||||||
|
|
||||||
<#list match as m>
|
<#list match as m>
|
||||||
<#local hours = m?groups[4]?number>
|
<#local hours = m?groups[4]?number>
|
||||||
<#local minutes = m?groups[5]?number>
|
<#local minutes = m?groups[5]?number>
|
||||||
|
@ -177,4 +173,3 @@
|
||||||
</#function>
|
</#function>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue