Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:测试unicode,并转换为time()_Python_Django - Fatal编程技术网

Python:测试unicode,并转换为time()

Python:测试unicode,并转换为time(),python,django,Python,Django,有时self.start是unicode: 例如 这使得datetime.com start = datetime.combine(self.job_record.date, self.start) 如何: unicode测试 从u'07:30:00'转换为datetime.time 检查unicode: >>> import types >>> type(u'07:30:00') is types.UnicodeType True >>>

有时self.start是unicode:

例如

这使得datetime.com

start = datetime.combine(self.job_record.date, self.start)
如何:

  • unicode测试
  • 从u'07:30:00'转换为datetime.time
  • 检查unicode:

    >>> import types
    >>> type(u'07:30:00') is types.UnicodeType
    True
    >>> type('regular string') is types.UnicodeType
    False
    
    将字符串转换为时间:

    >>> import time
    >>> time.strptime(u'07:30:00', '%H:%M:%S')
    (1900, 1, 1, 7, 30, 0, 0, 1, -1)
    
    检查unicode:

    >>> import types
    >>> type(u'07:30:00') is types.UnicodeType
    True
    >>> type('regular string') is types.UnicodeType
    False
    
    将字符串转换为时间:

    >>> import time
    >>> time.strptime(u'07:30:00', '%H:%M:%S')
    (1900, 1, 1, 7, 30, 0, 0, 1, -1)
    

    假设“07:30:00”中没有扩展字符集字符,则使用
    str(self.start)

    如果时间中的数字可能是特定于字符集的,请使用
    encode()
    ,并使用适当的
    error
    参数说明符将其转换为字符串

    在这种情况下,首先尝试使用
    str()
    ,然后使用
    except
    来处理无法转换的情况(请求原谅而不是许可)可能更具python风格。另一方面,如果您尝试转换的大多数值都失败,请在应用函数之前先转换它们


    作为不需要的旁白:
    combine
    函数需要一个datetime.date对象和一个datetime.time对象。如果确实希望避免不可预测的行为,那么请满足API的要求并传递
    日期
    时间
    对象,而不是试图缩短文档指定的契约:在调用
    组合
    之前转换参数,不要让
    combine
    帮你猜。

    假设'07:30:00'中不会有扩展字符集,然后使用
    str(self.start)

    如果时间中的数字可能是特定于字符集的,请使用
    encode()
    ,并使用适当的
    error
    参数说明符将其转换为字符串

    在这种情况下,首先尝试使用
    str()
    ,然后使用
    except
    来处理无法转换的情况(请求原谅而不是许可)可能更具python风格。另一方面,如果您尝试转换的大多数值都失败,请在应用函数之前先转换它们


    作为不需要的旁白:
    combine
    函数需要一个datetime.date对象和一个datetime.time对象。如果确实希望避免不可预测的行为,那么请满足API的要求并传递
    日期
    时间
    对象,而不是试图缩短文档指定的契约:在调用
    组合
    之前转换参数,而不是让
    combine
    帮你猜。

    datetime.combine
    抱怨,因为它希望第二个参数是
    datetime.time
    实例,而不是字符串(或unicode字符串)

    有几种方法可以将字符串转换为
    datetime.time
    实例。一种方法是使用
    datetime.strtime

    t = datetime.strptime(self.start, "%H:%M:%S").time()
    start = datetime.combine(self.job_record.date, t)
    

    datetime.combine
    正在抱怨,因为它希望第二个参数是
    datetime.time
    实例,而不是字符串(或unicode字符串)

    有几种方法可以将字符串转换为
    datetime.time
    实例。一种方法是使用
    datetime.strtime

    t = datetime.strptime(self.start, "%H:%M:%S").time()
    start = datetime.combine(self.job_record.date, t)
    

    添加实际的错误消息!添加实际的错误消息!