Hi Vincent,

 

Thanks. I am all set.

 

Regards,
Yitzhak Khabinsky

 

From: Lizzi, Vincent <vincent.li...@taylorandfrancis.com> 
Sent: Friday, September 9, 2022 1:55 PM
To: ykhab...@bellsouth.net; 'BaseX' <basex-talk@mailman.uni-konstanz.de>
Subject: RE: [basex-talk] current-dateTime() function precision

 

Hi Yitzhak 

 

The adjust-dateTime-to-timezone function may do what you need. For example,
this converts the current time to UTC.

 

adjust-dateTime-to-timezone(current-dateTime(), xs:dayTimeDuration('PT0H'))

 

For EDT, change the duration to "-PT4H". The duration that is needed for US
Eastern time will vary depending on the time of year.

 

See https://maxtoroq.github.io/xpath-ref/fn/adjust-dateTime-to-timezone.html

 

Kind regards,

Vincent

 

_____________________________________________

Vincent M. Lizzi

Head of Information Standards | Taylor & Francis Group 

 <mailto:vincent.li...@taylorandfrancis.com>
vincent.li...@taylorandfrancis.com

 

 

 

Information Classification: General

From: ykhab...@bellsouth.net <mailto:ykhab...@bellsouth.net>
<ykhab...@bellsouth.net <mailto:ykhab...@bellsouth.net> > 
Sent: Friday, September 9, 2022 1:46 PM
To: Lizzi, Vincent <vincent.li...@taylorandfrancis.com
<mailto:vincent.li...@taylorandfrancis.com> >; 'BaseX'
<basex-talk@mailman.uni-konstanz.de
<mailto:basex-talk@mailman.uni-konstanz.de> >
Subject: RE: [basex-talk] current-dateTime() function precision

 

Hi Vincent and Martin,

 

Thanks for the clarification.

 

I switched to using the Profiling module.

let $before_datetime := convert:integer-to-dateTime(prof:current-ms()) (:
current-dateTime() :)

 

And it is working well.

<startTime>2022-09-09T17:31:34.466Z</startTime>

<endTime>2022-09-09T17:31:34.538Z</endTime>

 

The last remaining task is to convert the output from the UTC time zone to
my local EST:

<startTime>2022-09-09T13:31:34.466-04:00</startTime>

 

Any idea how to achieve that?

 

Regards,
Yitzhak Khabinsky

From: Lizzi, Vincent <vincent.li...@taylorandfrancis.com
<mailto:vincent.li...@taylorandfrancis.com> > 
Sent: Friday, September 9, 2022 1:26 PM
To: ykhab...@bellsouth.net <mailto:ykhab...@bellsouth.net> ; 'BaseX'
<basex-talk@mailman.uni-konstanz.de
<mailto:basex-talk@mailman.uni-konstanz.de> >
Subject: RE: [basex-talk] current-dateTime() function precision

 

Hello Yitzhak,

 

The current-dateTime() function returns the same value throughout the
execution of a single query.

 

The Profiling module has functions that provide the current system time,
which is probably more to what you need. 

 

https://docs.basex.org/wiki/Profiling_Module

 

Kind regards,

Vincent

 

_____________________________________________

Vincent M. Lizzi

Head of Information Standards | Taylor & Francis Group 

 <mailto:vincent.li...@taylorandfrancis.com>
vincent.li...@taylorandfrancis.com

 

 

 

Information Classification: General

From: BaseX-Talk <basex-talk-boun...@mailman.uni-konstanz.de
<mailto:basex-talk-boun...@mailman.uni-konstanz.de> > On Behalf Of
ykhab...@bellsouth.net <mailto:ykhab...@bellsouth.net> 
Sent: Friday, September 9, 2022 11:55 AM
To: 'BaseX' <basex-talk@mailman.uni-konstanz.de
<mailto:basex-talk@mailman.uni-konstanz.de> >
Subject: [basex-talk] current-dateTime() function precision

 

Hello,

I am using BaseX v.10.1

It seems that the current-dateTime() function precision is off.

I am validating an XML file against an XSD 1.1 file via Xerces 2.12.2
validator. 
And trying to measure a timing of it.

Here is my code.
xquery version "4.0";

let $xml := '\\...\AForm-XSD-20211013\PD220224062681.XML'
let $xsd := '\\...\AForm-XSD-20211013\Miami-ws-AForm.xsd'

let $before_datetime := current-dateTime()
let $result := validate:xsd-report($xml, $xsd, map {
'http://apache.org/xml/features/validation/cta-full-xpath-checking': true()
})

return <root><metadata>
<result>{data($result/status)}</result>
<errors>{count($result/message)}</errors>
<startTime>{$before_datetime}</startTime>
<endTime>{current-dateTime()}</endTime>
<xmlFile>{$xml}</xmlFile>
<xsdFile>{$xsd}</xsdFile>
<xsdProcessor>BaseX {data(db:system()//version)}, EE-Java,
{validate:xsd-processor()} 2.12.2</xsdProcessor>
<xsdVersion>{validate:xsd-version()}</xsdVersion>
</metadata>
<messages>{$result/message}</messages>
</root>

It is emitting the following output:
<root>
<metadata>
<result>invalid</result>
<errors>3</errors>
<startTime>2022-09-09T11:32:29.667-04:00</startTime>
<endTime>2022-09-09T11:32:29.667-04:00</endTime>
<xmlFile>\\...\AForm-XSD-20211013\PD220224062681.XML
<file://.../AForm-XSD-20211013/PD220224062681.XML%3c/xmlFile> </xmlFile>
<xsdFile>\\...\AForm-XSD-20211013\Miami-ws-AForm.xsd
<file://.../AForm-XSD-20211013/Miami-ws-AForm.xsd%3c/xsdFile> </xsdFile>
<xsdProcessor>BaseX 10.1, EE-Java, Xerces 2.12.2</xsdProcessor>
<xsdVersion>1.1</xsdVersion>
</metadata>
<messages>
...
</messages>
</root>

The question is why the before and after timing is the same:
<startTime>2022-09-09T11:32:29.667-04:00</startTime>
<endTime>2022-09-09T11:32:29.667-04:00</endTime>

They are identical up to a millisecond.
My expectations were that at least the millisecond time portion would be
different.

Regards,
Yitzhak Khabinsky

Reply via email to