Returns a Date from the given parameters: - date(format=Date.format) => now - date(int) - date(string) - date(string, format=Date.format) - date(string, inputformat, format=Date.format) - date(year, month, day, format=Date.format) - date(year,
(*args, **kwargs)
| 137 | return date(d.year, d.month, d.day, d.hour, d.minute, d.second, d.microsecond, self.format) |
| 138 | |
| 139 | def date(*args, **kwargs): |
| 140 | """ Returns a Date from the given parameters: |
| 141 | - date(format=Date.format) => now |
| 142 | - date(int) |
| 143 | - date(string) |
| 144 | - date(string, format=Date.format) |
| 145 | - date(string, inputformat, format=Date.format) |
| 146 | - date(year, month, day, format=Date.format) |
| 147 | - date(year, month, day, hours, minutes, seconds, format=Date.format) |
| 148 | If a string is given without an explicit input format, all known formats will be tried. |
| 149 | """ |
| 150 | d = None |
| 151 | f = None |
| 152 | if len(args) == 0 or args[0] == NOW: |
| 153 | # No parameters or one parameter NOW. |
| 154 | d = Date.now() |
| 155 | elif len(args) == 1 \ |
| 156 | and (isinstance(args[0], int) \ |
| 157 | or isinstance(args[0], basestring) and args[0].isdigit()): |
| 158 | # One parameter, an int or string timestamp. |
| 159 | d = Date.fromtimestamp(int(args[0])) |
| 160 | elif len(args) == 1 and isinstance(args[0], basestring): |
| 161 | # One parameter, a date string for which we guess the input format (RFC2822 or known formats). |
| 162 | try: d = Date.fromtimestamp(mktime_tz(parsedate_tz(args[0]))) |
| 163 | except: |
| 164 | for format in ("format" in kwargs and [kwargs["format"]] or []) + date_formats: |
| 165 | try: d = Date.strptime(args[0], format); break |
| 166 | except: |
| 167 | pass |
| 168 | if d is None: |
| 169 | raise DateError, "unknown date format for %s" % repr(args[0]) |
| 170 | elif len(args) == 2 and isinstance(args[0], basestring): |
| 171 | # Two parameters, a date string and an explicit input format. |
| 172 | d = Date.strptime(args[0], args[1]) |
| 173 | elif len(args) >= 3: |
| 174 | # 3-6 parameters: year, month, day, hours, minutes, seconds. |
| 175 | f = kwargs.pop("format", None) |
| 176 | d = Date(*args[:7], **kwargs) |
| 177 | else: |
| 178 | raise DateError, "unknown date format" |
| 179 | d.format = kwargs.get("format") or len(args)>7 and args[7] or f or Date.format |
| 180 | return d |
| 181 | |
| 182 | def time(days=0, seconds=0, minutes=0, hours=0, **kwargs): |
| 183 | """ Returns a value that can be added to a Date object. |
no test coverage detected
searching dependent graphs…