大师兄的Python学习笔记(十一): 时间模块time,datetime和calendar

大师兄的Python学习笔记(十): 多进程和多线程
大师兄的Python学习笔记(十二): 常用高级函数

一、基础概念

1. 关于Python中的时间模块
  • Python中有很多时间相关的模块,其中比较常用的包括time包、datetime包、 calendar包、pytz包、dateutil包等。
  • 本篇只介绍基础包,还有很多好用的模块可以根据功能需求在github中搜索。
2. 时间戳(timestamp)
  • 时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。
  • 时间戳具有唯一性,可以唯一地标识某一刻的时间。
  • 32位系统中,时间戳的长度为32位,UNIX和Windows只支持到2038年。
>>>import time
>>>time.time() # 获取当前时间戳,距离1971年1月1日(00:00:00 GMT)的秒数
1579695503.7354536
3. struct_time元组
  • 用于处理时间的元组,包含了时间的基本信息。
  • 可以通过索引和属性名访问值。
  • 值包括:
索引 含义 属性
0 tm_year (例如,1993)
1 tm_mon range [1, 12]
2 tm_mday range [1, 31]
3 小时 tm_hour range [0, 23]
4 tm_min range [0, 59]
5 tm_sec range [0, 61]
6 一周的第几日 tm_wday range [0, 6] ,周一为 0
7 一年的第几日 tm_yday range [1, 366]
8 是否夏令时 tm_isdst 0, 1 或 -1
N/A 时区 tm_zone 时区名称的缩写
N/A 偏离 tm_gmtoff 以秒为单位的UTC以东偏离

二、time包

  • 提供了时间的访问和转换功能。
  • 属于Python的标准库。

1)time.time()

  • 获取当前时间的时间戳浮点数。
>>>import time
>>>time.time()
1579695503.7354536

2)time.localtime(time)

  • 转换为本地时间。
  • time的默认值是当前时间。
>>>import time
>>>time.localtime()
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=4, tm_hour=17, tm_min=55, tm_sec=22, tm_wday=1, tm_yday=35, tm_isdst=0)

3)time.asctime(time)

  • 获取默认格式的格式化时间。
  • time的默认值是当前时间。
>>>import time
>>>time.asctime(time.localtime())
'Tue Feb  4 17:59:38 2020'

4)time.strftime(format,time)

  • 获取格式化的时间。
  • 格式化符号:
符号 含义
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
>>>import time
>>>time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
'2020-02-05 18:59:00'
>>>time.strftime("%a %b %d %H:%M:%S %Y",time.localtime())
'Wed Feb 05 19:01:13 2020'

5)time.perf_counter()

  • 返回当前的CPU时间戳。
  • 通常用来计算程序耗时。
>>>import time
>>>t0 = time.perf_counter()
>>>for i in range(10000):
>>>    i+= 1
>>>t1 = time.perf_counter()
>>>tz = str(t1-t0)
>>>print("耗时{t}毫秒".format(t=tz))
耗时0.0007448000001204491毫秒

6)time.ctime(time)

  • 返回当地的时间,相当于asctime(localtime(secs))。
  • time的默认值是当前时间。
>>>import time
>>>time.ctime()
'Thu Feb  6 18:12:01 2020'

7)time.gmtime(time)

  • 将时间戳转换为格林威治时间,并返回 struct_time元祖。
  • time的默认值是当前时间。
>>>import time
>>>time.gmtime(324234324)
time.struct_time(tm_year=1980, tm_mon=4, tm_mday=10, tm_hour=17, tm_min=5, tm_sec=24, tm_wday=3, tm_yday=101, tm_isdst=0)

8)time.localtime(time)

  • 将时间戳转换为当地时间,并返回 struct_time元祖。
  • time的默认值是当前时间。
>>>import time
>>>time.localtime(324234324)
time.struct_time(tm_year=1980, tm_mon=4, tm_mday=11, tm_hour=1, tm_min=5, tm_sec=24, tm_wday=4, tm_yday=102, tm_isdst=0)

9)time.mktime(tupletime)

  • 将struct_time元祖转换为时间戳。
>>>import time
>>>time.mktime(time.localtime())
1580984332.0

10)time.sleep(<time>)

  • 让线程等候<time>秒。
>>>import time
>>>print(time.localtime()[-4])
>>>time.sleep(5)
>>>print(time.localtime()[-4])
30
35

11)time.strptime(str,fmt)

  • 将字符串str解析为struct_time元祖。
  • fmt为字符串的时间格式。
>>>import time
>>>time.strptime("2020-2-6 16:00:00","%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=6, tm_hour=16, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=37, tm_isdst=-1)

12)time.timezone属性

  • 当地时区,即距离格林威治的偏移秒数。
>>>import time
>>>time.timezone
-28800

13)time.tzname属性

  • 一个包含时区名称和夏令时本地区名称的元祖。
>>>import time
>>>time.tzname
('中国标准时间', '中国夏令时')

三、datetime包

  • datetime包重新封装了time包,增加了更多的接口。
  • datetime包在python标准库中。
  • datetime模块包含的类和属性:
类和属性 功能
date 日期对象
time 时间对象
datetime 日期时间对象
datetime_CAPI 日期对象的C语言接口
timedelta 时间间隔
tzinfo 时区信息对象
MAXYEAR 最大年份(9999)
MINYEAR 最小年份(1)
3.1 date类

1)date(year,month,day)

  • 实例化date类。
>>>from datetime import date
>>>day = date(2020,2,14)
>>>print(day)
>>>print(day.year,day.month,day.day)
2020-02-14
2020 2 14

2)date.max

  • 最大日期
>>>from datetime import date
>>>date.max
datetime.date(9999, 12, 31)

3)date.min

  • 最小日期
>>>from datetime import date
>>>date.min
datetime.date(1, 1, 1)

4)date.resolution

  • date类最小的对象,天。
>>>from datetime import date
>>>date.resolution
datetime.timedelta(days=1)

5)date.today()

  • 返回当前日期对象。
>>>from datetime import date
>>>today = date.today()
>>>print(today)
2020-02-07

6)date.fromtimestamp(timestamp)

  • 根据时间戳timestamp返回date对象。
>>>from datetime import date
>>>import time
>>>day = date.fromtimestamp(time.time())
>>>print(day)
2020-02-07

7)date.replace(year,month,day)

  • 替换原属性并生成新的对象。
  • 不影响原对象。
>>>from datetime import date
>>>day1 = date(2020,2,14)
>>>day2 = day1.replace(2020,3,14)
>>>print(day2)
>>>print(day2.year,day2.month,day2.day)
2020-03-14
2020 3 14

8)date.timetuple()

  • 返回date对应的time.struct_time对象。
>>>from datetime import date
>>>today = date.today()
>>>print(today.timetuple())
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=38, tm_isdst=-1)

9)date.weekday()

  • 返回date是星期几(从0开始)。
>>>from datetime import date
>>>today = date.today()
>>>print(today.weekday())
4

10)date.isoweekday()

  • 返回date是星期几(从1开始)。
>>>from datetime import date
>>>today = date.today()
>>>print(today.isoweekday())
5

11)date.isocalendar()

  • 返回年、一年中的第几周和一周中的第几天的元祖。
>>>from datetime import date
>>>today = date.today()
>>>print(today.isocalendar())
(2020, 6, 5)

12)date.isoformat()

  • 返回日期的标准格式字符串。
>>>from datetime import date
>>>today = date.today()
>>>print(today.isoformat())
2020-02-07
3.2 time类

1)time(hour,minute,second,microsecond,tzinfo)

  • 实例化time类。
>>>from datetime import time
>>>t = time(8,20,30,200)
>>>print(t)
>>>print(t.hour,t.minute,t.second,t.microsecond,t.tzinfo)
08:20:30.000200
8 20 30 200 None

2)time.max

  • 最大时间。
>>>from datetime import time
>>>time.max
datetime.time(23, 59, 59, 999999)

3)time.min

  • 最小时间。
>>>from datetime import time
>>>time.min
datetime.time(0,0)

4)time.resolution

  • 最小的时间单位。
>>>from datetime import time
>>>time.resolution
datetime.timedelta(microseconds=1)

5)time.replace(hour, minute, second, microsecond, tzinfo)

  • 创建一个新的time对象,并用新的属性替换。
  • 不影响原对象。
>>>from datetime import time
>>>t1 = time(8,20,30,200)
>>>t2 = t1.replace(10,10,20,100)
>>>print(t2)
10:10:20.000100

6)time.isoformat()

  • 返回标准的时间字符串。
>>>from datetime import time
>>>t = time(8,20,30,200)
>>>t.isoformat()
'08:20:30.000200'

7)time.strftime(time,fmt)

  • 接受一个datetime.time对象和格式,返回字符串。
  • fmt与2.4的内容相同。
>>>from datetime import time
>>>t = time(8,20,30,200)
>>>print(time.strftime(t,"%Y-%m-%d %H:%M:%S"))
>>>print(time.strftime(t,"%a %b %d %H:%M:%S %Y"))
1900-01-01 08:20:30
Mon Jan 01 08:20:30 1900
3.3 datetime类
  • datetime类是date类和time类的结合体。

1)datetime(year,month,day,hour,minute,second,microsecond,tzinfo)

  • 实例化datetime类。
>>>from datetime import datetime
>>>dt = datetime(2020,2,14,8,20,30,200)
>>>print(dt)
>>>print(dt.year,dt.month,dt.day,dt.hour,dt.minute,dt.second,dt.microsecond,dt.tzinfo)
2020-02-14 08:20:30.000200
2020 2 14 8 20 30 200 None

2)datetime.today()

  • 返回当前本地时间datetime对象。
>>>from datetime import datetime
>>>datetime.today()
datetime.datetime(2020, 2, 8, 17, 21, 44, 571213)

3)datetime.now(tz)

  • 可以接受时区参数,如果参数不存在则与today()相同。
>>>from datetime import datetime,timezone,timedelta
>>>tz_utc_8 = timezone(timedelta(hours=8)) # 设置与UTC的8小时时差
>>>print(datetime.now(tz=tz_utc_8))
2020-02-08 17:28:41.004420+08:00

4)datetime.utcnow()

  • 返回UTC时间的datetime对象。(格林威治时间)
>>>from datetime import datetime
>>>print(datetime.utcnow())
2020-02-08 09:30:59.423419

5)datetime.fromtimestamp(timestamp, tz)

  • 根据时间戳创建datetime对象。
  • tz为时区信息。
>>>from datetime import datetime
>>>import time
>>>datetime.fromtimestamp(time.time())
datetime.datetime(2020, 2, 8, 17, 33, 9, 517400)

6)datetime.isoformat(sep=’T’)

  • 返回标准格式的日期时间字符串。
  • sep是分割符。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>dt.isoformat()
'2020-02-08T17:35:04.790249'

7)datetime.ctime()

  • 返回一个日期时间字符串。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>dt.ctime()
'Sat Feb  8 17:36:52 2020'

8)datetime.strftime(fmt)

  • 将datetime对象转换为指定格式的字符串。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>fmt = "%Y-%m-%d %H:%M:%S"
>>>dt.strftime(fmt)
'2020-02-08 17:47:44'

9)datetime.strptime(date_string,format)

  • 将日期时间字符串转换为datetime对象。
>>>from datetime import datetime
>>>fmt = "%Y-%m-%d %H:%M:%S"
>>>datetime.strptime("2020-02-08 17:40:00",fmt)
datetime.datetime(2020, 2, 8, 17, 40)

10)datetime.combine(date,time)

  • 将date对象和time对象合并成为一个新的datetime对象。
>>>from datetime import date,time,datetime
>>>today = day.today()
>>>t = time(8,20,30,200)
>>>dt = datetime.combine(today,t)
>>>print(dt)
2020-02-08 08:20:30.000200

11)datetime. timetuple()

  • 返回datetime对象的struct_time元组。
>>>from datetime import datetime
>>>dt= datetime.now()
>>>dt. timetuple()
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=8, tm_hour=17, tm_min=51, tm_sec=58, tm_wday=5, tm_yday=39, tm_isdst=-1)

12)datetime. utctimetuple()

  • 返回datetime对象的utc时间struct_time元组。
>>>from datetime import datetime,timezone,timedelta
>>>tz_utc_8 = timezone(timedelta(hours=8))
>>>dt = datetime.now(tz=tz_utc_8)
>>>dt. utctimetuple ()
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=8, tm_hour=9, tm_min=58, tm_sec=7, tm_wday=5, tm_yday=39, tm_isdst=0)

13)datetime.toordinal()

  • 计算datetime是从0001-01-01开始算起的第几天。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>dt.toordinal()
737463

14)datetime.weekday()

  • 返回datetime对象是星期几。
  • 从0开始。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>dt.weekday()
5

15)datetime.isocalendar()

  • 返回datetime对象的年份,一年的第几周和一周的第几天。
  • 返回的是一个元组。
>>>from datetime import datetime
>>>dt = datetime.now()
>>>dt.isocalendar()
(2020, 6, 6)
3.4 timedelta类
  • 表示两个时间的差值。

1)timedelta(days,seconds,microseconds,milliseconds,minutes,hours,weeks)

  • 实例化timedelta类。
>>>from datetime import timedelta
>>>delta = timedelta(days=1,minutes=5) # 时间差为1天零5分钟
>>>print(delta)
1 day, 0:05:00

2)timedelta.min

  • 返回负数最大时间差。
>>>from datetime import timedelta
>>>timedelta.min
datetime.timedelta(days=-999999999)

3)timedelta.max

  • 返回正数最大时间差。
>>>from datetime import timedelta
>>>timedelta.max
datetime.timedelta(days=999999999, seconds=86399, microseconds=999999)

4)timedelta.resolution

  • 返回两个时间的最小时间差。
>>>from datetime import timedelta
>>>timedelta.resolution
datetime.timedelta(microseconds=1)

5)利用timedelta计算时间

  • 可以很方便的利用timedelta对datetime对象进行计算。
>>>from datetime import *
>>>today = datetime.now()
>>>delta = timedelta(days=20,minutes=5,hours=10)
>>>day = today + delta # 获得delta时间后的datetime类
>>>print(day)
2020-02-29 04:28:21.189760
3.5 tzinfo类
  • 是关于时区信息的类。
  • 是一个抽象类,不能直接被实例化。

1)使用时区

>>>from datetime import *
>>>class beijing(tzinfo): # 创建北京时区
>>>    # 北京时间
>>>    def __init__(self,offset=8):
>>>        self._offset = offset
>>>    def utcoffset(self,dt):
>>>        return timedelta(hours=self._offset)
>>>    def tzname(self,dt):
>>>        return "beijing"
>>>    def dst(self,dt):
>>>        return timedelta(hours=self._offset)
>>>beijing_time_now = datetime.now(beijing()) # 北京时间
>>>utc_time_now = datetime.now(beijing(-8)) # 格林威治时间
>>>print(beijing_time_now,beijing_time_now.tzinfo.tzname(beijing),beijing_time_now.tzinfo.utcoffset(beijing))
>>>print(utc_time_now)
>>>print(beijing_time_now == utc_time_now)
2020-02-08 19:11:40.114615+08:00 beijing 8:00:00
2020-02-08 03:07:29.020073-08:00
True

四、calendar包

  • 日历相关的模块。

1)calendar(year)

  • 返回year的年历多行字符串。
>>>import calendar
>>>print(calendar.calendar(2020))
                                 2020

     January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
      1  2  3  4  5                      1  2                         1
6  7  8  9 10 11 12       3  4  5  6  7  8  9       2  3  4  5  6  7  8
13 14 15 16 17 18 19      10 11 12 13 14 15 16       9 10 11 12 13 14 15
20 21 22 23 24 25 26      17 18 19 20 21 22 23      16 17 18 19 20 21 22
27 28 29 30 31            24 25 26 27 28 29         23 24 25 26 27 28 29
                                                   30 31

      April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
      1  2  3  4  5                   1  2  3       1  2  3  4  5  6  7
6  7  8  9 10 11 12       4  5  6  7  8  9 10       8  9 10 11 12 13 14
13 14 15 16 17 18 19      11 12 13 14 15 16 17      15 16 17 18 19 20 21
20 21 22 23 24 25 26      18 19 20 21 22 23 24      22 23 24 25 26 27 28
27 28 29 30               25 26 27 28 29 30 31      29 30

       July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
      1  2  3  4  5                      1  2          1  2  3  4  5  6
6  7  8  9 10 11 12       3  4  5  6  7  8  9       7  8  9 10 11 12 13
13 14 15 16 17 18 19      10 11 12 13 14 15 16      14 15 16 17 18 19 20
20 21 22 23 24 25 26      17 18 19 20 21 22 23      21 22 23 24 25 26 27
27 28 29 30 31            24 25 26 27 28 29 30      28 29 30
                         31

     October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
         1  2  3  4                         1          1  2  3  4  5  6
5  6  7  8  9 10 11       2  3  4  5  6  7  8       7  8  9 10 11 12 13
12 13 14 15 16 17 18       9 10 11 12 13 14 15      14 15 16 17 18 19 20
19 20 21 22 23 24 25      16 17 18 19 20 21 22      21 22 23 24 25 26 27
26 27 28 29 30 31         23 24 25 26 27 28 29      28 29 30 31
                         30

2)firstweekday()

  • 返回每周的起始日期。
  • 默认为0,星期一。
>>>import calendar
>>>calendar.firstweekday()
0

3)isleap(year)

  • 判断year是不是闰年。
>>>import calendar
>>>calendar.isleap(2020)
True

4)leapdays(year1,year2)

  • 判断两年之间的闰年总数。
>>>import calendar
>>>calendar.leapdays(1960,2020)
15

5)month(year,month,w=2,l=1)

  • 返回year年的month月历。
>>>import calendar
>>>print(calendar.month(2020,3))
    March 2020
Mo Tu We Th Fr Sa Su
                  1
2  3  4  5  6  7  8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

6)monthcalendar(year,month)

  • 返回月历的数字矩阵。
>>>import calendar
>>>monthcalendar(2020,3)
[[0, 0, 0, 0, 0, 0, 1],
[2, 3, 4, 5, 6, 7, 8],
[9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22],
[23, 24, 25, 26, 27, 28, 29],
[30, 31, 0, 0, 0, 0, 0]]

7)monthrange(year,month)

  • 返回year年month年的第一天是星期几。
  • 返回year年month年一共有多少天。
>>>import calendar
>>>calendar.monthrange(2020,3)
(6, 31)

8)prcal(year,w=2,l=1,c=6)

  • 相当于print(calendar.calendar())

9)prmonth(year,month,w=2,l=1)

  • 相当于print(calendar.calendar())

10)setfirstweekday(weekday)

  • 设置每周的起始日期。
>>>import calendar
>>>calendar.setfirstweekday(5)
>>>calendar.firstweekday()
5

11)timegm(tupletime)

  • 接受一个时间元祖,返回时间戳。
>>>import calendar,time
>>>calendar.timegm(time.gmtime(time.time()))
1581165667

12)calendar.weekday(year,month,day)

  • 返回特定日期是星期几。
>>>import calendar
>>>calendar.weekday(2020,4,24)
4

参考资料



本文作者:大师兄(superkmi)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容