axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean ANDRE <jan...@cmtek.com>
Subject Re: float type and date time format
Date Mon, 13 Dec 2004 21:28:00 GMT
Bonjour,

It seens there are 2 kind of implementation depending if the soap 
implementation use the "tm" structure or the  "time_t" stucture ?
Axis use the "tm" structure and produce the output format 
"2004-12-13T14:45:11Z" while some other soap implementations use 
"time_t" structure to specify a date-time format and it produces the 
output format *2004-12-14T02:17:47+05:00*.

Jean A.


John Hawkins wrote:

>
>
>John Hawkins
>
>One can either represent date time as Z (UTC) or the offest from Z as ->
>2002-09-24-06:00 (where the "-06:00" says this is 6 hours behind UTC. This
>is all I have gathered from the xsd specs.
>
>
>Jean ANDRE <jandre@cmtek.com> wrote on 13/12/2004 14:43:27:
>
>  
>
>>Hello Samisa Abeysinghe,
>>
>>According to John Bofish email, the "Z" is for UTC time and Zero Zone.
>>The time format is correct but under other developpment tools as .Net
>>and Java (but not Axis), the time is given in GMT.  "UTC is the
>>successor of Greenwich Mean Time </wiki/Greenwich_Mean_Time>,".  So,
>>the question is now, could we support both format or translate one to
>>another one easily, under the hood. It if really necessary to support
>>both formats, does existing architectures and softwares understand the
>>UTC format ?
>>As I wasn't able to complete test under Axis due to some bug with
>>Complex Structure (soaq response) , I can't tell you if the Z is an
>>    
>>
>issue.
>  
>
>>>That's a good guess. 'Z' is for "UTC", or Coordinated Universal Time.
>>>      
>>>
>See
>  
>
>>>http://en.wikipedia.org/wiki/Coordinated_Universal_Time for more on
>>>      
>>>
>UTC.
>  
>
>>>The World Wide Web Consortium has a note about date and time formats
>>>(http://www.w3.org/TR/NOTE-datetime) where it states:
>>>      
>>>
>>Thank you very much for your answers.
>>
>>Best regards,
>>
>>Jean A. - Canada -
>>
>>
>>
>>
>>Samisa Abeysinghe wrote:
>>
>>    
>>
>>>Bonjour Jean,
>>>
>>>Re: the datetime problem.
>>>I had a look at the source and the trailing 'Z' character seems to be
>>>hard coded in the serialize code in src/common/AxisTime.cpp. There is
>>>no mention  of why Z has been used there - not even a comment, so I am
>>>not sure what it means.
>>>
>>>However, if we want to change the format, we can do that by fixing the
>>>      
>>>
>code.
>  
>
>>>Also, I used Axis Java's echo service and client samples, and saw that
>>>Axis Java also send something similar to "2004-12-13T14:45:11Z".
>>>
>>>BTW, you have copied values from  tm struct to xsd__dateTime struct.
>>>This is not necessary, as the xsd__dateTime is defined to be of type
>>>tm. So you can use type tm directly as the parameter to the web
>>>service method.
>>>
>>>Thanks,
>>>Samisa...
>>>
>>>
>>>On Thu, 09 Dec 2004 20:30:34 +0500, Jean ANDRE <jandre@cmtek.com> wrote:
>>>
>>>
>>>      
>>>
>>>>Bonjour everybody!
>>>>
>>>>Well, I have a strange behavior with floating number and date time
>>>>        
>>>>
>format.
>  
>
>>>>1 ) With float number, 77.99 becomes 77.989998 output string under
>>>>Axis. Why I lost some digits ??????!!!
>>>>
>>>>2) With datetime format , in c++ test code, I just  moved some fields
>>>>to another one of the same structure and I get the following output
>>>>string: with Axis
>>>>   <txnDate>*2004-12-09T19:54:32Z*</txnDate>
>>>>
>>>>I supposed that Z is for TimeZone ?  But how to construct a time to
>>>>obtain such string ?
>>>>
>>>>With dot-net client application and a java application I got the
>>>>following string:
>>>><txnDate>2004-12-08T00:00:00.0000000-05:00</txnDate>
>>>>
>>>>Thanks a lot for your answers. Take care!
>>>>
>>>>Jean .A - Canada
>>>>
>>>>In c++ test code, I put the following code according to the WSDL.
>>>>
>>>>C++ Test code under Microsoft  Visual C++
>>>>==============================
>>>>class TxnAmount
>>>>{
>>>>public:
>>>>   float amount;
>>>>   xsd__string currency;
>>>>   TxnAmount();
>>>>   ~TxnAmount();
>>>>};
>>>>
>>>>   xsd__dateTime txnDate;
>>>>   tm* curTime;
>>>>   time_t timer;
>>>>
>>>>   amount.amount = 77.99;                // paymentForm.amount
>>>>   amount.currency = "USD";            // paymentForm.currency
>>>>
>>>>   memset(&txnDate, 0x00, sizeof(xsd__dateTime));
>>>>   timer = time(NULL);
>>>>   curTime = localtime( &timer );
>>>>   txnDate.tm_isdst    = curTime->tm_isdst;
>>>>   txnDate.tm_hour        = curTime->tm_hour;
>>>>   txnDate.tm_min        = curTime->tm_min;
>>>>   txnDate.tm_sec        = curTime->tm_sec;
>>>>   txnDate.tm_wday        = curTime->tm_wday;
>>>>   txnDate.tm_yday        = curTime->tm_yday;
>>>>   txnDate.tm_mday        = curTime->tm_mday;             //
>>>>paymentForm.txnDateD - day of the month - [1,31]
>>>>   txnDate.tm_mon        = curTime->tm_mon;                //
>>>>paymentForm.txnDateM - months since January - [0,11]
>>>>   txnDate.tm_year        = curTime->tm_year;                //
>>>>paymentForm.txnDateY - years since 1900
>>>>
>>>>Fragment of the WDSL:
>>>>==================
>>>>     <xs:element name="txnDate" type="xs:dateTime" minOccurs="0">
>>>>     </xs:element>
>>>>     <xs:complexType name="TxnAmount">
>>>>       <xs:sequence>
>>>>         <xs:element name="amount">
>>>>           <xs:simpleType>
>>>>             <xs:restriction base="xs:float">
>>>>               <xs:minInclusive value="0.00"/>
>>>>               <xs:maxInclusive value="9999999999.99"/>
>>>>             </xs:restriction>
>>>>           </xs:simpleType>
>>>>         </xs:element>
>>>>         <xs:element name="currency" minOccurs="0">
>>>>           <xs:simpleType>
>>>>             <xs:restriction base="xs:string">
>>>>               <xs:enumeration value="USD"/>
>>>>               <xs:enumeration value="CAD"/>
>>>>             </xs:restriction>
>>>>           </xs:simpleType>
>>>>         </xs:element>
>>>>       </xs:sequence>
>>>>     </xs:complexType>
>>>>
>>>>Fragment of the string sent by AXIS ??  Look the field amount !!!!
>>>>=============================================
>>>><ns1:txnRequest>
>>>><orderTotal>
>>>><amount>77.989998</amount>
>>>><currency>USD</currency>
>>>></orderTotal>
>>>><billTo>
>>>>
>>>><txnDate>*2004-12-09T19:54:32Z*</txnDate>
>>>>
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>
>>>      
>>>
>
>
>  
>


Mime
View raw message