>>> now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))
>>> dt = datetime(now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond, pytz.timezone('Asia/Tokyo'))
>>> now
datetime.datetime(2018, 9, 7, 16, 9, 24, 177751, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
>>> dt = datetime(now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond, pytz.timezone('Asia/Tokyo'))
>>> dt
datetime.datetime(2018, 9, 7, 16, 9, 24, 177751, tzinfo=<DstTzInfo 'Asia/Tokyo' LMT+9:19:00 STD>)
Run Code Online (Sandbox Code Playgroud)
因为now我得到了JST + 9:00:00,因为dt我得到了LMT +9:19:00.我不明白为什么datetime使用不同的格式.
当我比较他们不同的时间时:
>>> now == dt
False
Run Code Online (Sandbox Code Playgroud)
我怎么能转换LMT到JST,这样now == dt …
是否可以在日志记录配置文件中添加/使用过滤器?例如,以下代码是否有等效的设置?
import logging
# Set up loggers and handlers.
# ...
class LevelFilter(logging.Filter):
def __init__(self, level):
self.level = level
def filter(self, record):
return record.levelno == self.level
logFileHandler.addFilter(LevelFilter(logging.DEBUG))
Run Code Online (Sandbox Code Playgroud)
用于logging.conf中的处理程序
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=format_01
args=(sys.stdout,)
Run Code Online (Sandbox Code Playgroud)
我们可以像处理程序一样在配置文件(logging.conf)中为上面的Python代码编写日志过滤器吗?(Python代码仅作为示例)
我正在使用Grails Criteria(类似于hibernate标准)来获取给定表中每个部门中获得最高分的学生列表.而我想要的只是Name,Division和Grade领域.
Name | Division | Grade | Std_id
---------------------------------
AA1 | A | 2 | 1
AA2 | A | 4 | 2
BB1 | B | 2 | 3
BB2 | B | 5 | 4
Run Code Online (Sandbox Code Playgroud)
我想要的结果是
Name | Division | Grade |
--------------------------
AA2 | A | 4 |
BB2 | B | 5 |
Run Code Online (Sandbox Code Playgroud)
如果我使用以下标准
def criteria = Student.createCriteria()
def resultlt = criteria.list {
projections {
groupProperty('divison')
max('grade') …Run Code Online (Sandbox Code Playgroud) grails hibernate criteria hibernate-criteria nhibernate-projections
该功能hello没有任何冲突并且工作正常。
defmodule User do
defstruct [:name]
end
defmodule Greeter do
def hello(%User{} = user) do
"Hello #{user.name}"
end
def hello(name) do
"Hello #{name}"
end
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我向第一个函数添加可选参数,则会出现冲突错误。
...
def hello(%User{} = user, opts \\ []) do
"Hello #{user.name}"
end
...
Run Code Online (Sandbox Code Playgroud)
错误
def hello/1 conflicts with defaults from hello/2
任何人都可以解释为什么以及如何有意义?