Well, the quote is from the O'Reilly book EPUB 3.0 Best Practices (p. 10). It 
references the the EPUB standard document at: 

http://www.idpf.org/epub/30/spec/epub30-publications.html 

That document states: 
-------------- 
To ensure that a Package Identifier can be constructed, the Publication must 
include exactly one [ DCTERMS ] modified property containing the last 
modification date (see meta ). The value of this property must be an XML Schema 
[ XSD-DATATYPES ] dateTime conformant date of the form: 
CCYY-MM-DDThh:mm:ssZ 

The modification date must be expressed in Coordinated Universal Time (UTC) and 
must be terminated by the Z time zone indicator. 

<meta property="dcterms:modified">2011-01-01T12:00:00Z</meta> -------------- 

If curious, that is what got me going on this. 

Thanks again, 
Morgan 



----- Original Message -----
From: "David Lee" <[email protected]> 
To: "MarkLogic Developer Discussion" <[email protected]> 
Sent: Saturday, May 11, 2013 6:24:18 PM 
Subject: Re: [MarkLogic Dev General] return current dateTime in UTC format 




Not sure where "billed elsewhere" is ... but the W3C spec is fairly clear (if 
complex) 



http://www.w3.org/TR/xmlschema-2/#dateTime 





The · lexical space · of dateTime consists of finite-length sequences of 
characters of the form: '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? 
(zzzzzz)? , where 





That includes the possibility of fractional seconds and something other then Z 
for the timezone. 

----- 



    • '.' s+ (if present) represents the fractional seconds; 
    • zzzzzz (if present) represents the timezone (as described below). 


For example, 2002-10-10T12:00:00-05:00 (noon on 10 October 2002, Central 
Daylight Savings Time as well as Eastern Standard Time in the U.S.) is 
2002-10-10T17:00:00Z, five hours later than 2002-10-10T12:00:00Z. 












----------------------------------------------------------------------------- 

David Lee 
Lead Engineer 
MarkLogic Corporation 
[email protected] 
Phone: +1 812-482-5224 

Cell: +1 812-630-7622 
www.marklogic.com 







From: [email protected] 
[mailto:[email protected]] On Behalf Of 
[email protected] 
Sent: Saturday, May 11, 2013 6:17 PM 
To: MarkLogic Developer Discussion 
Subject: Re: [MarkLogic Dev General] return current dateTime in UTC format 




Ron (and David), 

Thanks. Yes, it "felt a bit wrong" to me too to have to slice and dice the 
dateTime as a string. I thought since this: 

2013-05-11T17:01:18Z 

is billed elsewhere as "the standard W3C date and time format" that there was 
probably a built-in function for it. 

Morgan 
----- Original Message -----


From: "Ron Hitchens" <[email protected]> 
To: "MarkLogic Developer Discussion" <[email protected]> 
Sent: Saturday, May 11, 2013 5:28:29 PM 
Subject: Re: [MarkLogic Dev General] return current dateTime in UTC format 


Try something like this (using XQuery 3.0 concatenation syntax): 


declare variable $orig-time := xs:dateTime 
("2013-05-11T10:38:45.333548-04:00"); 

declare variable $utc-time := fn:adjust-dateTime-to-timezone ($orig-time, 
xs:dayTimeDuration('PT0H')); 

declare variable $adjusted-time := xs:dateTime (fn:substring (fn:string 
($utc-time), 1, 19) || "Z"); 

$orig-time, $utc-time, $adjusted-time 


It feels a bit wrong to serialize an xs:dateTime to xs:string to truncate 
the fractional seconds. It would be better to be able to apply the fn:floor 
function to the seconds part. But there isn't an xs:dateTime constructor that 
takes the individual year, month, etc values, so you can only manipulate the 
string representation to make changes. 

--- 
Ron Hitchens {mailto:[email protected]} Ronsoft Technologies 
+44 7879 358 212 (voice) http://www.ronsoft.com 
+1 707 924 3878 (fax) Bit Twiddling At Its Finest 
"No amount of belief establishes any fact." -Unknown 


On May 11, 2013, at 6:41 PM, David Lee <[email protected]> wrote: 

> toss in an fn:replace() to strip off the fractional seconds, or you can use 
> format-dateTime() on the adjusted time, 
> but dont have it put a timezone on just concatentate the "Z" 
> or you can construct the string yourself by extracting out all the values and 
> concatenating them or 
> recreate a dateTime with no fractional seconds. 
> Lots of ways to skin the cat. 
> 
> 
> ----------------------------------------------------------------------------- 
> David Lee 
> Lead Engineer 
> MarkLogic Corporation 
> [email protected] 
> Phone: +1 812-482-5224 
> Cell: +1 812-630-7622 
> www.marklogic.com 
> 
> 
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of 
> [email protected] 
> Sent: Saturday, May 11, 2013 1:07 PM 
> To: MarkLogic Developer Discussion 
> Subject: Re: [MarkLogic Dev General] return current dateTime in UTC format 
> 
> Ellis, 
> 
> Thanks, that's close. 
> 
> fn:adjust-dateTime-to-timezone(current-dateTime(),xs:dayTimeDuration('PT0H')) 
> 
> returns: 
> 2013-05-11T17:01:18.209498Z 
> 
> I need this: 
> 2013-05-11T17:01:18Z 
> 
> Morgan 
> 
> From: "Ellis Pritchard" <[email protected]> 
> To: "MarkLogic Developer Discussion" <[email protected]> 
> Sent: Saturday, May 11, 2013 12:21:06 PM 
> Subject: Re: [MarkLogic Dev General] return current dateTime in UTC format 
> 
> fn:adjust-dateTime-to-timezone($dateTime,xs:dayTimeDuration('PT0H')) 
> 
> Ellis. 
> 
> On 11 May 2013, at 15:52, [email protected] wrote: 
> 
> The current-dateTime() function returns the following: 
> 
> 2013-05-11T10:38:45.333548-04:00 
> 
> I need to have it expressed in UTC (Coordinated Universal Time), with a 
> special UTC designator ("Z") like: 
> 
> 1994-11-05T13:15:30Z 
> 
> How is that done? With format-dateTime()? 
> 
> Thanks, 
> Morgan 
> _______________________________________________ 
> 
> General mailing list 
> [email protected] 
> http://developer.marklogic.com/mailman/listinfo/general 
> 
> _______________________________________________ 
> General mailing list 
> [email protected] 
> http://developer.marklogic.com/mailman/listinfo/general 
> _______________________________________________ 
> General mailing list 
> [email protected] 
> http://developer.marklogic.com/mailman/listinfo/general 

_______________________________________________ 
General mailing list 
[email protected] 
http://developer.marklogic.com/mailman/listinfo/general 
_______________________________________________ 
General mailing list 
[email protected] 
http://developer.marklogic.com/mailman/listinfo/general 
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to