$dateFromString
聚合运算符将日期时间字符串转换为日期对象。
语法
{
$dateFromString: {
dateString: <dateStringExpression>,
format: <formatStringExpression>,
timezone: <tzExpression>,
onError: <onErrorExpression>,
onNull: <onNullExpression>
} }
参数字段说明:
字段 | 必须 | 说明 |
---|---|---|
dateString |
如果没有用isoWeekYear 则必须 |
日历年度,可以是任何能解析为整数的表达式,值域为:1~9999,如果超出范围将报错。从4.4以后最小值为1,再之前的版本最小值是0 |
format |
若year没有用则必须 | ISO的周日期年,可以是任何能解析为整数的表达式,值域为:1~9999,如果超出将报错。从4.4以后最小值为1,再之前的版本最小值是0 |
timezone |
可选 | 执行操作的时区,<timezone> 可以是任何能被解析为:Olson时区标识符或UTC偏移量 |
onError |
可选 | 在解析dateString 时如果出错,则输出onError 表达式的结果,结果值可以是任意类型 |
onNull |
可选 | 如果dateString 为null 或不存在,则输出onNull 表达式的结果,可以是任意类型 |
使用
使用例子对规则进行说明
例1:
{
$dateFromString: {
dateString: "2017-02-08T12:10:40.787"
} }
结果:ISODate("2017-02-08T12:10:40.787Z")
例2:
{
$dateFromString: {
dateString: "2017-02-08T12:10:40.787",
timezone: "America/New_York"
} }
结果:ISODate("2017-02-08T12:10:40.787Z")
例3:
{
$dateFromString: {
dateString: "2017-02-08"
} }
结果:ISODate("2017-02-08T00:00:00Z")
例4:
{
$dateFromString: {
dateString: "oct 20 2020"
} }
结果:ISODate("2020-10-20T00:00:00.000Z")
例5:
{
$dateFromString: {
dateString: "06-15-2018",
format: "%m-%d-%Y"
} }
结果:ISODate("2018-06-15T00:00:00Z")
例6:
{ $dateFromString: {
dateString: "15-06-2018",