python的datetime模块学习(十三)
datetime模块以简单和复杂的方式提供用于操纵日期和时间的类。 虽然支持日期和时间算术,但实现的重点是有效的
属性提取用于输出格式和操作。见该模块的源码:
# Stubs for datetime # NOTE: These are incomplete! from time import struct_time from typing import Optional, SupportsAbs, Tuple, Union, overload MINYEAR = 0 MAXYEAR = 0 class tzinfo(object): def tzname(self, dt: Optional[datetime]) -> str: ... def utcoffset(self, dt: Optional[datetime]) -> Optional[timedelta]: ... def dst(self, dt: Optional[datetime]) -> Optional[timedelta]: ... def fromutc(self, dt: datetime) -> datetime: ... _tzinfo = tzinfo class date(object): min = ... # type: date max = ... # type: date resolution = ... # type: timedelta def __init__(self, year: int, month: int, day: int) -> None: ... @classmethod def fromtimestamp(cls, t: float) -> date: ... @classmethod def today(cls) -> date: ... @classmethod def fromordinal(cls, n: int) -> date: ... @property def year(self) -> int: ... @property def month(self) -> int: ... @property def day(self) -> int: ... def ctime(self) -> str: ... def strftime(self, fmt: Union[str, unicode]) -> str: ... def __format__(self, fmt: Union[str, unicode]) -> str: ... def isoformat(self) -> str: ... def timetuple(self) -> struct_time: ... def toordinal(self) -> int: ... def replace(self, year: int = ..., month: int = ..., day: int = ...) -> date: ... def __le__(self, other: date) -> bool: ... def __lt__(self, other: date) -> bool: ... def __ge__(self, other: date) -> bool: ... def __gt__(self, other: date) -> bool: ... def __add__(self, other: timedelta) -> date: ... @overload def __sub__(self, other: timedelta) -> date: ... @overload def __sub__(self, other: date) -> timedelta: ... def __hash__(self) -> int: ... def weekday(self) -> int: ... def isoweekday(self) -> int: ... def isocalendar(self) -> Tuple[int, int, int]: ... class time: min = ... # type: time max = ... # type: time resolution = ... # type: timedelta def __init__(self, hour: int = ..., minute: int = ..., second: int = ..., microsecond: int = ..., tzinfo: tzinfo = ...) -> None: ... @property def hour(self) -> int: ... @property def minute(self) -> int: ... @property def second(self) -> int: ... @property def microsecond(self) -> int: ... @property def tzinfo(self) -> _tzinfo: ... def __le__(self, other: time) -> bool: ... def __lt__(self, other: time) -> bool: ... def __ge__(self, other: time) -> bool: ... def __gt__(self, other: time) -> bool: ... def __hash__(self) -> int: ... def isoformat(self) -> str: ... def strftime(self, fmt: Union[str, unicode]) -> str: ... def __format__(self, fmt: str) -> str: ... def utcoffset(self) -> Optional[timedelta]: ... def tzname(self) -> Optional[str]: ... def dst(self) -> Optional[int]: ... def replace(self, hour: int = ..., minute: int = ..., second: int = ..., microsecond: int = ..., tzinfo: Union[_tzinfo, bool] = ...) -> time: ... _date = date _time = time class timedelta(SupportsAbs[timedelta]): min = ... # type: timedelta max = ... # type: timedelta resolution = ... # type: timedelta def __init__(self, days: float = ..., seconds: float = ..., microseconds: float = ..., milliseconds: float = ..., minutes: float = ..., hours: float = ..., weeks: float = ...) -> None: ... @property def days(self) -> int: ... @property def seconds(self) -> int: ... @property def microseconds(self) -> int: ... def total_seconds(self) -> float: ... def __add__(self, other: timedelta) -> timedelta: ... def __radd__(self, other: timedelta) -> timedelta: ... def __sub__(self, other: timedelta) -> timedelta: ... def __rsub(self, other: timedelta) -> timedelta: ... def __neg__(self) -> timedelta: ... def __pos__(self) -> timedelta: ... def __abs__(self) -> timedelta: ... def __mul__(self, other: float) -> timedelta: ... def __rmul__(self, other: float) -> timedelta: ... @overload def __floordiv__(self, other: timedelta) -> int: ... @overload def __floordiv__(self, other: int) -> timedelta: ... @overload def __div__(self, other: timedelta) -> float: ... @overload def __div__(self, other: float) -> timedelta: ... def __le__(self, other: timedelta) -> bool: ... def __lt__(self, other: timedelta) -> bool: ... def __ge__(self, other: timedelta) -> bool: ... def __gt__(self, other: timedelta) -> bool: ... def __hash__(self) -> int: ... class datetime(object): # TODO: is actually subclass of date, but __le__, __lt__, __ge__, __gt__ don't work with date. min = ... # type: datetime max = ... # type: datetime resolution = ... # type: timedelta def __init__(self, year: int, month: int, day: int, hour: int = ..., minute: int = ..., second: int = ..., microseconds: int = ..., tzinfo: tzinfo = ...) -> None: ... @property def year(self) -> int: ... @property def month(self) -> int: ... @property def day(self) -> int: ... @property def hour(self) -> int: ... @property def minute(self) -> int: ... @property def second(self) -> int: ... @property def microsecond(self) -> int: ... @property def tzinfo(self) -> Optional[_tzinfo]: ... @classmethod def fromtimestamp(cls, t: float, tz: _tzinfo = ...) -> datetime: ... @classmethod def utcfromtimestamp(cls, t: float) -> datetime: ... @classmethod def today(cls) -> datetime: ... @classmethod def fromordinal(cls, n: int) -> datetime: ... @classmethod def now(cls, tz: _tzinfo = ...) -> datetime: ... @classmethod def utcnow(cls) -> datetime: ... @classmethod def combine(cls, date: date, time: time) -> datetime: ... def strftime(self, fmt: Union[str, unicode]) -> str: ... def __format__(self, fmt: str) -> str: ... def toordinal(self) -> int: ... def timetuple(self) -> struct_time: ... def utctimetuple(self) -> struct_time: ... def date(self) -> _date: ... def time(self) -> _time: ... def timetz(self) -> _time: ... def replace(self, year: int = ..., month: int = ..., day: int = ..., hour: int = ..., minute: int = ..., second: int = ..., microsecond: int = ..., tzinfo: Union[_tzinfo, bool] = ...) -> datetime: ... def astimezone(self, tz: _tzinfo) -> datetime: ... def ctime(self) -> str: ... def isoformat(self, sep: str = ...) -> str: ... @classmethod def strptime(cls, date_string: Union[str, unicode], format: Union[str, unicode]) -> datetime: ... def utcoffset(self) -> Optional[timedelta]: ... def tzname(self) -> Optional[str]: ... def dst(self) -> Optional[int]: ... def __le__(self, other: datetime) -> bool: ... def __lt__(self, other: datetime) -> bool: ... def __ge__(self, other: datetime) -> bool: ... def __gt__(self, other: datetime) -> bool: ... def __add__(self, other: timedelta) -> datetime: ... @overload def __sub__(self, other: datetime) -> timedelta: ... @overload def __sub__(self, other: timedelta) -> datetime: ... def __hash__(self) -> int: ... def weekday(self) -> int: ... def isoweekday(self) -> int: ... def isocalendar(self) -> Tuple[int, int, int]: ...
下面来看该模块中某些类或者某些方法的具体应用,见实现的代码和案例:
#!/usr/bin/env python # -*- coding:utf-8 -*- import datetime import time print u'当前时间:\n',datetime.datetime.today() print u'时间戳转成时间格式:\n',datetime.datetime.fromtimestamp(time.time()) print u'获取当前时间:\n',datetime.datetime.now() print u'当前时间指定的值被替换:\n' current_time=datetime.datetime.now() print current_time.replace(2000,01,01) print u'返回struct_time时间格式:',datetime.datetime.now().timetuple() print u'字符串转换为时间格式:',datetime.datetime.strptime('21/11/06 22:11','%d/%m/%y %H:%M') print u'当前时间加上10天的时间为:\n',datetime.datetime.now()+datetime.timedelta(days=10)
datetime模块就介绍到这,如您感兴趣,可扫描如下的二维码关注本人的微信公众号,谢谢:
欢迎关注微信公众号“Python自动化测试”