<blockquote>
<p>I need it to also be json-serializable, so I can easily manipulate the value in python and JS if needed.</p>
</blockquote>
<p><code>"16:00"</code>字符串可用于存储时间(如果不需要秒)。</p>
<blockquote>
<p>I want "16:00" to always mean current day's "16:00".</p>
</blockquote>
<p>要将其与当前时间进行比较:</p>
<pre><code>import time
if time.strftime('%H:%M') < '16:00':
print('before 4pm')
else:
print('after 4pm')
</code></pre>
<p><code>%H</code>,<code>%M</code>产生零填充的十进制数,例如<code>07</code>,因此字符串比较工作正常。它也可以在DST转换的情况下工作(只要C<code>localtime()</code>工作)。</p>
<p>要将其解析为时间、日期时间对象:</p>
<pre><code>from datetime import datetime
four_pm_time = datetime.strptime('16:00', '%H:%M').time()
four_pm = datetime.combine(datetime.now(), four_pm_time)
</code></pre>
<p>要获取时区感知的datetime对象,请执行以下操作:</p>
<pre><code>import tzlocal # $ pip install tzlocal
four_pm_aware = tzlocal.get_localzone().localize(four_pm, is_dst=None)
</code></pre>
<p><a href="https://stackoverflow.com/a/36462784/4279">To get Unix time corresponding to 4pm (assuming ^{<cd6>} works here)</a>:</p>
<pre><code>import time
unix_time = time.mktime(time.localtime()[:3] + (16, 0, 0) + (-1,)*3)
</code></pre>