【发布时间】:2021-11-01 03:40:02
【问题描述】:
我想提取格式为 MM/dd/yy 的日期(例如 2003 年 2 月 1 日的 02/01/03)。我不知道如何使用 joda 时间格式字符串来指定它,这似乎是 druid 需要的。
在 java 代码中,我可以通过为 joda DateTimeFormatter 指定一个基准年来做到这一点,但似乎没有办法只用一个格式字符串来做到这一点(这是 druid 摄取规范中可用的全部内容)。
【问题讨论】:
我想提取格式为 MM/dd/yy 的日期(例如 2003 年 2 月 1 日的 02/01/03)。我不知道如何使用 joda 时间格式字符串来指定它,这似乎是 druid 需要的。
在 java 代码中,我可以通过为 joda DateTimeFormatter 指定一个基准年来做到这一点,但似乎没有办法只用一个格式字符串来做到这一点(这是 druid 摄取规范中可用的全部内容)。
【问题讨论】:
我做了很多试验和错误,发现了以下内容,但我仍然无法在任何地方找到记录。
两位数年份的“轴心点”是 40。40 岁以上的年份是 1900 年代,40 岁以下的年份是 2000 年代。这意味着:
不要指定一位数的年份!这不会像您期望的那样工作;例如:
不要指定一个 y 格式的字符串!例如,格式字符串“M/d/y”应用于“3/4/03”时将被解释为公元 3 年的 3 月 4 日。
【讨论】:
您可以在 timestampSpec 中指定如何解析您的时间戳。
例如:
"timestampSpec": {
"column": "timestamp",
"format": "MM/dd/yy"
}
另请参阅此页面:https://druid.apache.org/docs/latest/ingestion/ingestion-spec.html#timestampspec
【讨论】: