jq日期操作协助

时间:2018-02-01 15:34:06

标签: json date jq strptime strftime

我有一个名为“dateFound”的mysql日期字段。

@Entity
public class Person{
    ...

    @OneToMany
    @JoinColumn(name = "person_id")
    private List<Email> emailList = new ArrayList<>();       

    ...
}

@Entity
public class Email{
    ...

    private String emailAddress;

    ...
}

我已经创建了一个非常基本的python API,可以将所有数据从MySQL中提取出来并通过json提供。在此过程中,似乎将YYYY-MM-DD转换为YYYY-MM-DD 00:00:00

dateFound       | date         | YES  |     | NULL              |                             |

但是在json输出中它是:

mysql> select dateFound from db where item = 111222;
+------------+
| dateFound  |
+------------+
| 2017-11-12 |
+------------+

我正在尝试通过jq隔离如何将其转换回YYYY-MM-DD,但我真的没有找到它。

dateFound   "Sun, 12 Nov 2017 00:00:00 GMT"

是我正在进行的转换的基本近似(减去所有其他字段),它确实为我提供了所需的所有数据。这只是日期格式,我无法回到YYYY-MM-DD。

我尝试使用定义的格式将管道插入strptime,但这显然不是正确的语法。寻找指向我所缺少的东西的指针。我认为对数据的日期操作会比这更容易,或者我错过了一些非常明显的东西。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

  1. 在适当截断字符串后,您可以使用内置过滤器strptime/1 - 请参阅标准C库函数的任何文档,例如: http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html
  2. 例如:

     sub(" [A-Z]+$";"")
     | strptime("%a, %d %b %Y %T")
     | mktime
     | strftime("%Y-%m-%d")
    
    1. 在源代码中修复问题可能更简单,更好。