【问题标题】:How to get the current time in Python如何在 Python 中获取当前时间
【发布时间】:2017-08-02 14:51:31
【问题描述】:

获取当前时间的模块/方法是什么?

【问题讨论】:

  • 请注意,投票最多的答案是 timezonoe-naive datetime,而我们看到在生产环境中,全球越来越多的服务连接在一起,时区感知 datetime 成为必需的标准跨度>
  • 这是@SławomirLenart 的一个非常有效的观点,这里有一个快速教程显示multiple ways to get the current time based on the timezone

标签: python datetime time


【解决方案1】:

用途:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150

只是时间:

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
15:08:24.789150

更多信息请参见the documentation

为了节省输入,您可以从datetime 模块中导入datetime 对象:

>>> from datetime import datetime

然后从以上所有内容中删除前导datetime.

【讨论】:

  • 如果这个答案涵盖时区(可能是 UTC 为例)并且可能以 time.time() 开头,那就太好了。
  • @Toskan 格式不是问题的一部分,因此它不应该成为答案的一部分。已经提供了一个链接,指向该模块的更多文档,其中包含格式等内容。
  • 原始答案是哪个版本的 Python?只需在我的 Python 2.7 交互式控制台中输入 datetime.datetime.now()(IronPython 尚未更新),我就会得到与答案中使用 print() 的较新示例相同的行为。我没有成功复制原始答案显示的内容(datetime.datetime(2009, 1, 6, 15, 8, 24, 78915))。 (不是我真的想要, print() 行为是首选,但我很好奇。)
  • @BobVicktor:Python 2.7、3.7 和 3.8 对我来说都给出了相同的行为,不确定你看到了什么。
  • @HarleyHolcombe 嗯...也许是 IronPython 的东西?当我自己输入datetime.now() 时,它会打印出来,就像你的答案显示print(datetime.now())...
【解决方案2】:

你可以使用time.strftime()

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'

【讨论】:

  • 这比@ParaMeterz 下面的答案好还是坏?为什么我们应该使用time 模块而不是datetime 模块?
  • 它不会返回我计算机的当前时间。
  • 这是 UTC 时间,与 datetime 模块不同
  • @Saeed:使用函数localtime() 而不是gmtime() 来获取您的当地时间。
  • @frank 参见related questiondatetimetime
【解决方案3】:
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')

对于本示例,输出将如下所示:'2013-09-18 11:16:32'

这是strftime directives的列表。

【讨论】:

    【解决方案4】:

    Harley's answer 类似,但使用str() 函数来获得一种更简洁、更易读的格式:

    >>> from datetime import datetime
    >>> str(datetime.now())
    '2011-05-03 17:45:35.177000'
    

    【讨论】:

    • 不相关; “str”步骤不在问题范围内
    • @pppery 操作员也没有说这与获取时间字符串无关。 op 根本没有说他们想用时间做什么,那么为什么展示如何将它变成一个字符串是一件坏事呢?大部分答案都在谈论从时间获取一个字符串,所以它似乎是一个常见的用例,那么为什么要挑出 Ray 的答案呢?只是在不知道如何任何事情的情况下获得时间有什么用?您可以打印它,或对其进行数学运算,只有几个答案显示如何对其进行数学运算,因此我认为打印/获取字符串是一种常见用途。 ;-)(我知道这是我来的目的。)
    • 这个答案有超过 440 个赞成票的事实表明,添加字符串方法 对很多人很有用。
    • 440 人正在寻找不是问题实际答案的内容这一事实并不能使该内容成为问题的答案。
    • @pppery 事实上,这是回答问题的另一种方式,这使得它与其他有类似问题的人相关。所以这没有什么问题:)
    【解决方案5】:

    如何在 Python 中获取当前时间?

    time 模块

    time 模块提供了以“自纪元以来的秒数”为单位告诉我们时间的函数以及其他实用程序。

    import time
    

    Unix 纪元时间

    这是您在数据库中保存时间戳时应采用的格式。它是一个简单的浮点数,可以转换为整数。它也适用于以秒为单位的算术运算,因为它表示自 1970 年 1 月 1 日 00:00:00 以来的秒数,并且相对于我们接下来要研究的其他时间表示而言,它是记忆之轻:

    >>> time.time()
    1424233311.771502
    

    此时间戳不考虑闰秒,因此它不是线性的 - 闰秒被忽略。因此,虽然它不等同于国际 UTC 标准,但它很接近,因此对于大多数记录保存情况来说非常好。

    但是,这对于人工调度来说并不理想。如果您有一个希望在某个时间点发生的未来事件,您需要将该时间与一个可以解析为datetime 对象或序列化datetime 对象的字符串一起存储(这些将是稍后介绍)。

    time.ctime

    您还可以以操作系统首选的方式表示当前时间(这意味着当您更改系统首选项时,它可能会发生变化,因此不要将其作为所有系统的标准,正如我所见其他人期望)。这通常是用户友好的,但通常不会导致可以按时间顺序排序的字符串:

    >>> time.ctime()
    'Tue Feb 17 23:21:56 2015'
    

    您也可以使用 ctime 将时间戳合并为人类可读的形式:

    >>> time.ctime(1424233311.771502)
    'Tue Feb 17 23:21:51 2015'
    

    这种转换也不利于记录保存(除了只能由人类解析的文本 - 并且随着光学字符识别和人工智能的改进,我认为这些案例的数量会减少)。

    datetime模块

    datetime 模块在这里也很有用:

    >>> import datetime
    

    datetime.datetime.now

    datetime.now 是一个返回当前时间的类方法。它使用没有时区信息的time.localtime(如果没有给出,否则请参阅下面的时区感知)。它有一个在 shell 上回显的表示(允许您重新创建一个等效对象),但是当打印(或强制为str)时,它是人类可读的(并且几乎是 ISO)格式,并且字典排序是相当于按时间排序:

    >>> datetime.datetime.now()
    datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
    >>> print(datetime.datetime.now())
    2015-02-17 23:43:51.782461
    

    日期时间的utcnow

    您可以通过执行以下操作以 UTC 时间(全球标准)获取 datetime 对象:

    >>> datetime.datetime.utcnow()
    datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
    >>> print(datetime.datetime.utcnow())
    2015-02-18 04:53:31.783988
    

    UTC 是几乎等同于 GMT 时区的时间标准。 (虽然 GMT 和 UTC 不会因夏令时而改变,但他们的用户可能会在夏季切换到其他时区,例如英国夏令时。)

    datetime 时区感知

    但是,到目前为止,我们创建的日期时间对象都不能轻松转换为不同的时区。我们可以使用pytz 模块解决这个问题:

    >>> import pytz
    >>> then = datetime.datetime.now(pytz.utc)
    >>> then
    datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)
    

    同样,在 Python 3 中,我们有 timezone 类,附加了一个 utc timezone 实例,这也使对象时区感知(但在没有方便的 pytz 模块的情况下转换到另一个时区作为练习给读者):

    >>> datetime.datetime.now(datetime.timezone.utc)
    datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)
    

    我们看到我们可以轻松地从原始 UTC 对象转换为时区。

    >>> print(then)
    2015-02-18 04:55:58.753949+00:00
    >>> print(then.astimezone(pytz.timezone('US/Eastern')))
    2015-02-17 23:55:58.753949-05:00
    

    您还可以使用 pytz timezone localize 方法或替换 tzinfo 属性(使用 replace,这是盲目地完成)来使天真的 datetime 对象感知,但这些是最后的手段而不是最佳实践:

    >>> pytz.utc.localize(datetime.datetime.utcnow())
    datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
    >>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
    datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)
    

    pytz 模块允许我们让 datetime 对象感知时区,并将时间转换为 pytz 模块中可用的数百个时区。

    表面上可以将此对象序列化为 UTC 时间并将 那个 存储在数据库中,但与仅存储 Unix 纪元时间相比,它需要更多的内存并且更容易出错,我已演示过首先。

    查看时间的其他方式更容易出错,尤其是在处理可能来自不同时区的数据时。您不希望字符串或序列化日期时间对象用于哪个时区。

    如果您使用 Python 为用户显示时间,ctime 可以很好地工作,而不是在表格中(通常不能很好地排序),但可能在时钟中。但是,我个人建议,在 Python 中处理时间时,使用 Unix 时间,或者使用时区感知的 UTC datetime 对象。

    【讨论】:

    • 我想每个人都同意ctime 必须是格式化日期时间的最奇怪的方式。星期几和月份的缩写,月份的日期,24 小时制 h:m:s,然后是四位数的年份。喜欢对日期字符串进行排序的书呆子、美国人、欧洲人……每个人——是的,每个人——都可以在这种格式中找到至少两件令人恼火的事情。虽然我会使用它,因为它超级简单。
    • 正如我上面所说的ctime:“您还可以以操作系统首选的方式表示当前时间(这意味着它可以在您更改系统首选项时更改,所以不要正如我所看到的其他人所期望的那样,这将成为所有系统的标准)。这通常是用户友好的,但通常不会导致可以按时间顺序排序的字符串:"
    【解决方案6】:

    from time import time
    
    t = time()
    
    • t - 浮点数,适合时间间隔测量。

    Unix 和 Windows 平台存在一些差异。

    【讨论】:

    • 我在 Windows 10 家庭版上的结果是 1576095264.2682993 - 对于 Windows,这可能只是以秒为单位提供时间。
    【解决方案7】:
    >>> from time import gmtime, strftime
    >>> strftime("%a, %d %b %Y %X +0000", gmtime())
    'Tue, 06 Jan 2009 04:54:56 +0000'
    

    以指定格式输出当前 GMT。还有一个localtime() 方法。

    这个page有更多细节。

    【讨论】:

      【解决方案8】:

      前面的回答都是不错的建议,不过我觉得用ctime()最方便:

      In [2]: from time import ctime
      In [3]: ctime()
      Out[3]: 'Thu Oct 31 11:40:53 2013'
      

      这给出了当前本地时间的格式良好的字符串表示。

      【讨论】:

      • OP 询问如何获取时间,而不是如何显示时间!
      【解决方案9】:

      最快的方法是:

      >>> import time
      >>> time.strftime("%Y%m%d")
      '20130924'
      

      【讨论】:

        【解决方案10】:

        如果您需要当前时间作为time 对象:

        >>> import datetime
        >>> now = datetime.datetime.now()
        >>> datetime.time(now.hour, now.minute, now.second)
        datetime.time(11, 23, 44)
        

        【讨论】:

          【解决方案11】:

          .isoformat() 在文档中,但还没有在这里 (这与@Ray Vega 的回答非常相似):

          >>> import datetime
          >>> datetime.datetime.now().isoformat()
          '2013-06-24T20:35:55.982000'
          

          【讨论】:

            【解决方案12】:

            您可以使用time 模块:

            >>> import time
            >>> print(time.strftime("%d/%m/%Y"))
            06/02/2015
            

            使用大写字母Y 表示全年,使用y 表示06/02/15

            您还可以使用以下代码来延长时间:

            >>> time.strftime("%a, %d %b %Y %H:%M:%S")
            'Fri, 06 Feb 2015 17:45:09'
            

            【讨论】:

              【解决方案13】:

              为什么不问问美国海军官方计时员U.S. Naval Observatory

              import requests
              from lxml import html
              
              page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
              tree = html.fromstring(page.content)
              print(tree.xpath('//html//body//h3//pre/text()')[1])
              

              如果你住在华盛顿地区(像我一样),延迟可能不会太糟糕......

              【讨论】:

              • @C8H10N4O2 虽然您是正确的,其他答案假设您的计算机已经知道正确的时间,但此答案假设计算机已连接到互联网,您在美国,并且他们永远不会删除该文件/更改链接。这个答案中的假设比接受的要多得多。仍然很聪明
              • 很高兴拥有比内置时钟更多的时间来源!甚至是更合乎逻辑的 NTP 选择的一个很好的替代方案。
              【解决方案14】:

              使用pandas 获取当前时间,有点矫枉过正手头的问题:

              import pandas as pd
              print(pd.datetime.now())
              print(pd.datetime.now().date())
              print(pd.datetime.now().year)
              print(pd.datetime.now().month)
              print(pd.datetime.now().day)
              print(pd.datetime.now().hour)
              print(pd.datetime.now().minute)
              print(pd.datetime.now().second)
              print(pd.datetime.now().microsecond)
              

              输出:

              2017-09-22 12:44:56.092642
              2017-09-22
              2017
              9
              22
              12
              44
              56
              92693
              

              【讨论】:

              • 此方法将在以后的 pandas 版本中被弃用。请改用 datetime 模块。
              【解决方案15】:

              如果你已经在使用 numpy,那么你可以直接使用 numpy.datetime64() 功能。

              import numpy as np
              str(np.datetime64('now'))
              

              仅限日期:

              str(np.datetime64('today'))
              

              或者,如果您已经在使用 pandas,那么您可以使用 pandas.to_datetime() 函数

              import pandas as pd
              str(pd.to_datetime('now'))
              

              或者,

              str(pd.to_datetime('today'))
              

              【讨论】:

                【解决方案16】:

                这就是我最终的结果:

                >>>from time import strftime
                >>>strftime("%m/%d/%Y %H:%M")
                01/09/2015 13:11
                

                此外,此表是选择适当格式代码以按照您想要的方式格式化日期的必要参考(来自 Python“日期时间”文档here)。

                【讨论】:

                • strftime(time_format) 将当前本地时间作为对应于给定time_format 的字符串返回。注意:time.strftime()datetime.strftime() 支持不同的指令集,例如 %z is not supported by time.strftime() on Python 2
                • 使用日期时间而不是时间是否更好?
                • 许多time 模块函数是相应C 函数的薄包装。 datetime 级别更高,通常更便携。
                【解决方案17】:

                datetime.now() 将当前时间作为表示本地时区时间的原始日期时间对象返回。该值可能不明确,例如,在 DST 转换期间(“回退”)。为避免歧义,应使用 UTC 时区:

                from datetime import datetime
                
                utc_time = datetime.utcnow()
                print(utc_time) # -> 2014-12-22 22:48:59.916417
                

                或附加了相应时区信息的时区感知对象(Python 3.2+):

                from datetime import datetime, timezone
                
                now = datetime.now(timezone.utc).astimezone()
                print(now) # -> 2014-12-23 01:49:25.837541+03:00
                

                【讨论】:

                • 仅供参考,不建议使用 datetime.utcnow() 来表示 UTC 中的当前时间,因为它仍然返回一个“天真的”日期时间对象——相反,建议使用 datetime.now(timezone.utc)返回一个 'aware' 日期时间对象。有关详细信息,请参阅 Python 文档:docs.python.org/3/library/…
                • @Seth 注意到 Python 3.2+ 解决方案已经使用了timezone.utc。也许,既然 Python 2.7 已经 EOLed,naive-datetime 可能会被删除
                • 啊,我没有意识到这纯粹是为了与 Python 2.7 兼容——也许应该在帖子中澄清一下?至少对我来说,这篇文章似乎暗示天真的方法和有意识的方法都是(仍然)同样可以接受的获取 UTC 时间的方法,这就是为什么我指出这不是 Python 的(最新)文档所说的。
                【解决方案18】:
                import datetime
                date_time = datetime.datetime.now()
                
                date = date_time.date()  # Gives the date
                time = date_time.time()  # Gives the time
                
                print date.year, date.month, date.day
                print time.hour, time.minute, time.second, time.microsecond
                

                执行dir(date) 或包括包在内的任何变量。可以获取变量关联的所有属性和方法。

                【讨论】:

                • @snofty 和@user1016274,如果import datetime 则为datetime.datetime.now()\n 如果from datetime import datetime 则为datetime.now()
                【解决方案19】:
                >>> import datetime, time
                >>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
                >>> print time
                '00:21:38:20S'
                

                【讨论】:

                • 我想你的意思是说“datetime.now().strftime(...)”
                • 是的,可以如你所说。 "datetime.datetime.now().strftime("%H:%M:%S:%MS")"
                • %MS 不给你毫秒!!
                【解决方案20】:

                这个问题不需要一个新的答案只是为了它......一个闪亮的新玩具/模块,然而,足够的理由。那就是Pendulum library,它似乎做了箭头尝试的那种事情,除了没有困扰箭头的固有缺陷和错误。

                比如原问题的答案:

                >>> import pendulum
                >>> print(pendulum.now())
                2018-08-14T05:29:28.315802+10:00
                >>> print(pendulum.now('utc'))
                2018-08-13T19:29:35.051023+00:00
                

                有很多标准需要解决,包括多个 RFC 和 ISO,需要担心。永远把它们弄混;不用担心,看一下dir(pendulum.constants) 不过,这里不只是 RFC 和 ISO 格式。

                当我们说本地时,我们的意思是什么?我的意思是:

                >>> print(pendulum.now().timezone_name)
                Australia/Melbourne
                >>>
                

                大概你们中的大多数人是指其他地方。

                然后继续。长话短说:Pendulum 尝试对日期和时间做请求对 HTTP 所做的事情。值得考虑,尤其是它的易用性和丰富的文档。

                【讨论】:

                  【解决方案21】:

                  默认情况下,now() 函数以YYYY-MM-DD HH:MM:SS:MS 格式返回输出。使用以下示例脚本在 Python 脚本中获取当前日期和时间并在屏幕上打印结果。使用以下内容创建文件getDateTime1.py

                  import datetime
                  
                  currentDT = datetime.datetime.now()
                  print (str(currentDT))
                  

                  输出如下所示:

                  2018-03-01 17:03:46.759624
                  

                  【讨论】:

                    【解决方案22】:

                    试试http://crsmithdev.com/arrow/的箭头模块:

                    import arrow
                    arrow.now()
                    

                    或 UTC 版本:

                    arrow.utcnow()
                    

                    要更改其输出,请添加 .format():

                    arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
                    

                    对于特定时区:

                    arrow.now('US/Pacific')
                    

                    一小时前:

                    arrow.utcnow().replace(hours=-1)
                    

                    或者,如果您想了解要点。

                    arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
                    >>> '2 years ago'
                    

                    【讨论】:

                    【解决方案23】:

                    要精确获得 3 小数点毫秒11:34:23.751,请运行以下命令:

                    def get_time_str(decimal_points=3):
                            return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
                    

                    更多上下文:

                    我想以毫秒为单位获取时间。获取它们的简单方法:

                    import time, datetime
                    
                    print(datetime.datetime.now().time())                         # 11:20:08.272239
                    
                    # Or in a more complicated way
                    print(datetime.datetime.now().time().isoformat())             # 11:20:08.272239
                    print(datetime.datetime.now().time().strftime('%H:%M:%S.%f')) # 11:20:08.272239
                    
                    # But do not use this:
                    print(time.strftime("%H:%M:%S.%f", time.localtime()), str)    # 11:20:08.%f
                    

                    但我只想要毫秒,对吗?获得它们的最短途径:

                    import time
                    
                    time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
                    # 11:34:23.751
                    

                    在最后一个乘法中添加或删除零以调整小数点数,或者只是:

                    def get_time_str(decimal_points=3):
                        return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
                    

                    【讨论】:

                    • 这适用于 Python 3:time.strftime("%H:%M:%S", time.localtime()) + '.{}'.format(int(time.time( ) % 1 * 1000))
                    【解决方案24】:

                    你可以用这个函数来获取时间(可惜它没有说上午或下午):

                    def gettime():
                        from datetime import datetime
                        return ((str(datetime.now())).split(' ')[1]).split('.')[0]
                    

                    要获得小时、分钟、秒和毫秒以便稍后合并,您可以使用以下函数:

                    小时:

                    def gethour():
                        from datetime import datetime
                        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
                    

                    分钟:

                    def getminute():
                        from datetime import datetime
                        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]
                    

                    第二个:

                    def getsecond():
                        from datetime import datetime
                        return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]
                    

                    毫秒:

                    def getmillisecond():
                        from datetime import datetime
                        return (str(datetime.now())).split('.')[1]
                    

                    【讨论】:

                      【解决方案25】:

                      时区的当前时间

                      from datetime import datetime
                      import pytz
                      
                      tz_NY = pytz.timezone('America/New_York') 
                      datetime_NY = datetime.now(tz_NY)
                      print("NY time:", datetime_NY.strftime("%H:%M:%S"))
                      
                      tz_London = pytz.timezone('Europe/London')
                      datetime_London = datetime.now(tz_London)
                      print("London time:", datetime_London.strftime("%H:%M:%S"))
                      
                      tz_India = pytz.timezone('Asia/India')
                      datetime_India = datetime.now(tz_India)
                      print("India time:", datetime_India.strftime("%H:%M:%S"))
                      
                      #list timezones
                      pytz.all_timezones
                      

                      【讨论】:

                        【解决方案26】:

                        如果你只想要当前时间戳以毫秒为单位(例如,测量执行时间),你也可以使用“timeit”模块:

                        import timeit
                        start_time = timeit.default_timer()
                        do_stuff_you_want_to_measure()
                        end_time = timeit.default_timer()
                        print("Elapsed time: {}".format(end_time - start_time))
                        

                        【讨论】:

                          【解决方案27】:

                          你可以试试下面的

                          import datetime
                          
                          now = datetime.datetime.now()
                          print(now)
                          

                          import datetime
                          
                          now = datetime.datetime.now()
                          print(now.strftime("%Y-%b-%d, %A %I:%M:%S"))
                          

                          【讨论】:

                            【解决方案28】:

                            因为还没有人提到它,这是我最近遇到的事情...... pytz 时区的 fromutc() 方法结合 datetime 的 utcnow() 是我发现获得有用当前时间的最佳方法(和日期)在任何时区。

                            from datetime import datetime
                            
                            import pytz
                            
                            
                            JST = pytz.timezone("Asia/Tokyo")
                            
                            
                            local_time = JST.fromutc(datetime.utcnow())
                            

                            如果您想要的只是时间,那么您可以通过local_time.time() 获得。

                            【讨论】:

                            • 令人惊讶的是,以上所有答案都没有提到时区。您还应该包含 strftime 以获得您想要的格式。
                            • 我没有包含它,因为它已经包含在其他答案中(并且显示格式不是问题的一部分)。
                            【解决方案29】:
                            import datetime
                            
                            todays_date = datetime.date.today()
                            print(todays_date)
                            >>> 2019-10-12
                            
                            # adding strftime will remove the seconds
                            current_time = datetime.datetime.now().strftime('%H:%M')
                            print(current_time)
                            >>> 23:38
                            

                            【讨论】:

                              【解决方案30】:

                              您可以使用 ctime() 来做到这一点:

                              from time import time, ctime
                              t = time()
                              ctime(t)
                              

                              输出:

                              Sat Sep 14 21:27:08 2019

                              这些输出不同,因为ctime() 返回的时间戳取决于您的地理位置。

                              【讨论】:

                                猜你喜欢
                                • 2017-10-01
                                • 2020-12-17
                                • 2011-04-06
                                • 2011-07-08
                                • 1970-01-01
                                • 2021-01-28
                                • 2017-02-15
                                相关资源
                                最近更新 更多