Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$dateToString (operador de expresión)

$dateToString

Convierte un objeto de fecha en una string según un formato especificado por el usuario.

La expresión $dateToString tiene lo siguiente Sintaxis de expresión del operador:

Puedes usar $dateToString para implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

La expresión $dateToString tiene la siguiente sintaxis de expresión de operador:

{ $dateToString: {
date: <dateExpression>,
format: <formatString>,
timezone: <tzExpression>,
onNull: <expression>
} }
Campo
Descripción

date

La fecha para convertir a una string. <dateExpression> debe ser una expresión válida que resuelva a una Fecha, una Marca de tiempo o un ObjectID.

format

Opcional. La especificación del formato de fecha. <formatString> puede ser cualquier literal de string que contenga cero o más especificadores de formato. Para ver la lista de los especificadores disponibles, se debe consultar Especificadores de formato.

Si no se especifica y timezone está configurado en una zona horaria distinta de UTC, entonces $dateToString usará "%Y-%m-%dT%H:%M:%S.%L" como formato por defecto.

Si no se especifica y timezone no está especificado o se especifica explícitamente como UTC, entonces $dateToString usa "%Y-%m-%dT%H:%M:%S.%LZ" como formato por defecto.

timezone

opcional. La zona horaria del resultado de la operación. <tzExpression> debe ser una expresión válida que se resuelva en una cadena formateada, ya sea como un Identificador de Zona Horaria de Olson o un Diferencia UTC. Si no se proporciona timezone, el resultado está en UTC.

Formato
Ejemplos

Olson Timezone Identifier

"America/New_York"
"Europe/London"
"GMT"

UTC Offset

+/-[hh]:[mm], e.g. "+04:45"
+/-[hh][mm], e.g. "-0530"
+/-[hh], e.g. "+03"

onNull

Opcional. El valor a devolver si date es nulo o falta. Los argumentos pueden ser cualquier expresión válida.

Si no se especifica, $dateToString devuelve nulo si date está nulo o no está presente.

Tip

Los siguientes especificadores de formato están disponibles para usarse en <formatString>:

Especificadores
Descripción
Possible Values

%b

Nombre del mes abreviado (3 letras)

Nuevo en la versión 7.0.

jan-dec

%B

Nombre completo del mes

Nuevo en la versión 7.0.

january-december

%d

Día del mes (2 dígitos, con ceros a la izquierda)

01-31

%G

Año en formato ISO 8601

0000-9999

%H

Hora (2 dígitos, con ceros a la izquierda, reloj de 24 horas)

00-23

%j

Día del año (3 dígitos, con ceros a la izquierda)

001-366

%L

Milisegundo (3 dígitos, con ceros a la izquierda)

000-999

%m

Mes (2 dígitos, con ceros a la izquierda)

01-12

%M

Minuto (2 dígitos, con ceros a la izquierda)

00-59

%S

Segundo (2 dígitos, con ceros a la izquierda)

00-60

%u

Número del día de la semana en formato ISO 8601 (1-lunes, 7-domingo)

1-7

%U

Semana del año (2 dígitos, con ceros a la izquierda)

00-53

%V

Semana del año en formato ISO 8601

01-53

%w

Día de la semana (1-domingo, 7-sábado)

1-7

%Y

Año (4 dígitos, con ceros a la izquierda)

0000-9999

%z

El desfase horario desde UTC.

+/-[hh][mm]

%Z

Los minutos desplazados respecto de UTC como un número. Por ejemplo, si la diferencia de zona horaria (+/-[hhmm]) era +0445, la diferencia en minutos sería +285.

+/-mmm

%%

Carácter porcentual como literal

%

Considere una colección sales con el siguiente documento:

db.sales.insertOne(
{
"_id" : 1,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-01-01T08:15:39.736Z")
}
)

La siguiente agregación usa $dateToString para devolver el campo date como strings formateadas:

db.sales.aggregate(
[
{
$project: {
yearMonthDayUTC: { $dateToString: { format: "%Y-%m-%d", date: "$date" } },
timewithOffsetNY: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "America/New_York"} },
timewithOffset430: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "+04:30" } },
minutesOffsetNY: { $dateToString: { format: "%Z", date: "$date", timezone: "America/New_York" } },
minutesOffset430: { $dateToString: { format: "%Z", date: "$date", timezone: "+04:30" } },
abbreviated_month: { $dateToString: {format: "%b", date: "$date", timezone: "+04:30" } },
full_month: { $dateToString: { format: "%B", date: "$date", timezone: "+04:30" } }
}
}
]
)

La operación devuelve el siguiente resultado:

{
"_id" : 1,
"yearMonthDayUTC" : "2014-01-01",
"timewithOffsetNY" : "03:15:39:736-0500",
"timewithOffset430" : "12:45:39:736+0430",
"minutesOffsetNY" : "-300",
"minutesOffset430" : "270",
"abbreviated_month": "Jan",
"full_month": "January"
}

Volver

$dateToParts

En esta página