@@ -5482,7 +5482,7 @@ Jsonix.Schema.XSD.Time = Jsonix.Class(Jsonix.Schema.XSD.Calendar, {
54825482 correctedValue = value ;
54835483 }
54845484 var correctedTime = correctedValue . getTime ( ) ;
5485- if ( correctedTime >= 0 ) {
5485+ if ( correctedTime >= ( - localTimezone * 60000 ) ) {
54865486 return this . printTime ( new Jsonix . XML . Calendar ( {
54875487 hour : correctedValue . getHours ( ) ,
54885488 minute : correctedValue . getMinutes ( ) ,
@@ -5492,10 +5492,17 @@ Jsonix.Schema.XSD.Time = Jsonix.Class(Jsonix.Schema.XSD.Calendar, {
54925492 } ) ) ;
54935493 } else {
54945494 var timezoneHours = Math . ceil ( - correctedTime / 3600000 ) ;
5495+
5496+ var correctedTimeInSeconds = correctedValue . getSeconds ( ) +
5497+ correctedValue . getMinutes ( ) * 60 +
5498+ correctedValue . getHours ( ) * 3600 +
5499+ timezoneHours * 3600 -
5500+ timezone * 60 ;
5501+
54955502 return this . printTime ( new Jsonix . XML . Calendar ( {
5496- hour : ( correctedValue . getHours ( ) + timezoneHours - timezone / 60 ) % 24 ,
5497- minute : correctedValue . getMinutes ( ) ,
5498- second : correctedValue . getSeconds ( ) ,
5503+ hour : correctedTimeInSeconds % 86400 ,
5504+ minute : correctedTimeInSeconds % 3600 ,
5505+ second : correctedTimeInSeconds % 60 ,
54995506 fractionalSecond : ( correctedValue . getMilliseconds ( ) / 1000 ) ,
55005507 timezone : timezoneHours * 60
55015508 } ) ) ;
0 commit comments