python - Jython 中的日期时间

标签 python jython apache-nifi

我需要知道今天是否是工作日。

在 CPython 中,我会使用日期时间:

import datetime
today=datetime.date.today()
if today.isoweekday()==0 or today.isoweekday()==6
   print "weekend"
else:
   print "weekday"

但是,由于我使用 NiFi,所以我被迫使用 Jython。它显然将 datetime 实现为某些 JDBC 类的别名。 如果我在 NiFi 中尝试上面的代码,我会收到以下错误:

AttributeError: 'java.sql.Date' object has no attribute 'isoweekday' in at line number 8.

在这种情况下我怎样才能找到星期几?

最佳答案

您必须在 Jython 中执行此确定吗? Apache NiFi 公开了一种自定义表达式语言,它允许您在流文件属性或内容中执行某些操作,而无需加载全新的评估环境。通过使用 EL date functionsJava time formatting syntax (specifically E -- day of week) ,您可以制作一个 bool 表达式,该表达式将适本地返回 weekdayweekend

此示例使用 now() 返回当前时间,但您也可以拥有现有的属性值,例如 12/10/2018 或类似的字符串根据 EL 文档,使用 toDate() 进行解析。

${now():format("E"):in("周六", "周日"):ifElse("周末", "工作日")}

这已在 Apache NiFi 1.9.0-SNAPSHOT 上进行了测试,但应该适用于 1.2.0 之后引入 ifElse 的任何版本。

关于python - Jython 中的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709405/

相关文章:

python - "Try it Out"部分中的 Django Rest Swagger 自定义身份验证 header

python - knitr - Python 引擎缓存选项不起作用

java - Jython - 从 Python 类创建类实例和执行方法的正确方法

python - 使用 Jython 运行的 Python 中的模板库(引擎)

oracle - Nifi 中的 ExecuteSQL 处理器以 avro 格式返回数据

elasticsearch - 每次保存新内容时,如何删除Elasticsearch的旧内容?

python - 如何在 Django/Python 中自动填充 PDF 表单?

python - OpenAI-Gym 和 Keras-RL : DQN expects a model that has one dimension for each action

java - 学习 Java,以便我可以使用 clojure

hadoop - Nifi 错误 : Failed to establish the connection with AMQP broker