| @@ 383-418 (lines=36) @@ | ||
| 380 | return values |
|
| 381 | def gds_validate_datetime(self, input_data, node=None, input_name=''): |
|
| 382 | return input_data |
|
| 383 | def gds_format_datetime(self, input_data, input_name=''): |
|
| 384 | if input_data.microsecond == 0: |
|
| 385 | _svalue = '%04d-%02d-%02dT%02d:%02d:%02d' % ( |
|
| 386 | input_data.year, |
|
| 387 | input_data.month, |
|
| 388 | input_data.day, |
|
| 389 | input_data.hour, |
|
| 390 | input_data.minute, |
|
| 391 | input_data.second, |
|
| 392 | ) |
|
| 393 | else: |
|
| 394 | _svalue = '%04d-%02d-%02dT%02d:%02d:%02d.%s' % ( |
|
| 395 | input_data.year, |
|
| 396 | input_data.month, |
|
| 397 | input_data.day, |
|
| 398 | input_data.hour, |
|
| 399 | input_data.minute, |
|
| 400 | input_data.second, |
|
| 401 | ('%f' % (float(input_data.microsecond) / 1000000))[2:], |
|
| 402 | ) |
|
| 403 | if input_data.tzinfo is not None: |
|
| 404 | tzoff = input_data.tzinfo.utcoffset(input_data) |
|
| 405 | if tzoff is not None: |
|
| 406 | total_seconds = tzoff.seconds + (86400 * tzoff.days) |
|
| 407 | if total_seconds == 0: |
|
| 408 | _svalue += 'Z' |
|
| 409 | else: |
|
| 410 | if total_seconds < 0: |
|
| 411 | _svalue += '-' |
|
| 412 | total_seconds *= -1 |
|
| 413 | else: |
|
| 414 | _svalue += '+' |
|
| 415 | hours = total_seconds // 3600 |
|
| 416 | minutes = (total_seconds - (hours * 3600)) // 60 |
|
| 417 | _svalue += '{0:02d}:{1:02d}'.format(hours, minutes) |
|
| 418 | return _svalue |
|
| 419 | @classmethod |
|
| 420 | def gds_parse_datetime(cls, input_data): |
|
| 421 | tz = None |
|
| @@ 496-525 (lines=30) @@ | ||
| 493 | return dt.date() |
|
| 494 | def gds_validate_time(self, input_data, node=None, input_name=''): |
|
| 495 | return input_data |
|
| 496 | def gds_format_time(self, input_data, input_name=''): |
|
| 497 | if input_data.microsecond == 0: |
|
| 498 | _svalue = '%02d:%02d:%02d' % ( |
|
| 499 | input_data.hour, |
|
| 500 | input_data.minute, |
|
| 501 | input_data.second, |
|
| 502 | ) |
|
| 503 | else: |
|
| 504 | _svalue = '%02d:%02d:%02d.%s' % ( |
|
| 505 | input_data.hour, |
|
| 506 | input_data.minute, |
|
| 507 | input_data.second, |
|
| 508 | ('%f' % (float(input_data.microsecond) / 1000000))[2:], |
|
| 509 | ) |
|
| 510 | if input_data.tzinfo is not None: |
|
| 511 | tzoff = input_data.tzinfo.utcoffset(input_data) |
|
| 512 | if tzoff is not None: |
|
| 513 | total_seconds = tzoff.seconds + (86400 * tzoff.days) |
|
| 514 | if total_seconds == 0: |
|
| 515 | _svalue += 'Z' |
|
| 516 | else: |
|
| 517 | if total_seconds < 0: |
|
| 518 | _svalue += '-' |
|
| 519 | total_seconds *= -1 |
|
| 520 | else: |
|
| 521 | _svalue += '+' |
|
| 522 | hours = total_seconds // 3600 |
|
| 523 | minutes = (total_seconds - (hours * 3600)) // 60 |
|
| 524 | _svalue += '{0:02d}:{1:02d}'.format(hours, minutes) |
|
| 525 | return _svalue |
|
| 526 | def gds_validate_simple_patterns(self, patterns, target): |
|
| 527 | # pat is a list of lists of strings/patterns. |
|
| 528 | # The target value must match at least one of the patterns |
|