PowerShell puede hacer muchas cosas y, como cualquier buen lenguaje de programación, puede hacer casi cualquier cosa que desee con las fechas. Con el comando PowerShell Get-Date
y otras técnicas, puede encontrar la fecha de hoy, la fecha de mañana, las fechas de formato y mucho más.
en este artículo, ¡aprenderás todo sobre dates y PowerShell!,
tabla de contenidos
prerrequisitos
para seguir los ejemplos de este artículo, asegúrese de cumplir los siguientes prerrequisitos con antelación:
- Windows PowerShell v5 o superior: incluso si está utilizando una versión anterior, todos los ejemplos probablemente seguirán funcionando bien.
encontrar la fecha actual con PowerShell
Una de las formas más fáciles de descubrir la fecha actual con PowerShell es mediante el cmdlet Get-Date
. Este comando muestra la fecha y hora actuales como se muestra a continuación.,
PS> Get-DateSunday, November 22, 2020 1:25:57 AM
de forma predeterminada, Get-Date
parece que solo devuelve la fecha y hora actuales, pero, en realidad, está devolviendo mucha más información. Para encontrar esta información, canalice la salida al cmdlet Format-List
como se muestra a continuación.
También puede usar el cmdlet
Get-Member
para buscar todas las propiedades del objeto ejecutandoGet-Date | Get-Member -MemberType Properties
también.,
Si marca el tipo de objeto Get-Date
devuelve, notará que es un tipo de objeto System.DateTime
. Esta clase es la que expone todas las diferentes propiedades y métodos que ve. Puede descubrir su tipo de objeto usando Get-Member
o usando GetType()
como se muestra a continuación.
PS> (Get-Date).GetType().FullNameSystem.DateTime
Una vez que vea todas las propiedades disponibles que tiene disponibles, puede referenciarlas con notación de puntos como se muestra a continuación.,
PS> (Get-Date).Year2020PS> (Get-Date).DayOfWeekSundayPS> (Get-Date).Month11PS> (Get-Date).DayOfYear327
¿la notación de puntos es demasiado «devvy» para ti? Si es así, también puede usar el parámetro DisplayHint
para lograr el mismo resultado.
Usando Get-Date
es la forma más sencilla de encontrar la fecha actual y varios atributos, ¡pero puedes hacer mucho más!
aritmética de fechas con PowerShell
supongamos que necesita conocer la fecha y / o la hora de un determinado número de días, años o minutos en el pasado o en el futuro. Puede encontrar esta información utilizando métodos.,
usando métodos DateTime
el objeto System.DateTime
que devuelve Get-Date
tiene varios métodos que puede invocar para agregar o eliminar trozos de tiempo. Si ejecuta Get-Date | Get-Member
, vas a ver varios métodos que comienzan con Add
.
AddDays Method datetime AddDays(double value)AddHours Method datetime AddHours(double value)AddMilliseconds Method datetime AddMilliseconds(double value)AddMinutes Method datetime AddMinutes(double value)AddMonths Method datetime AddMonths(int months)AddSeconds Method datetime AddSeconds(double value)AddTicks Method datetime AddTicks(long value)AddYears Method datetime AddYears(int value)
Puede llamar a cada uno de estos métodos para encontrar una fecha / hora en el futuro o en el pasado. A continuación verá algunos ejemplos de cómo invocar cada uno de estos métodos y sus resultados.,
usando New-Timespan
¿Qué pasaría si quisiera saber la diferencia entre dos fechas; no solo agregar un número específico de fragmentos de tiempo? Una forma de hacerlo es usar el cmdlet New-Timespan
. El cmdlet New-Timespan
genera objetos TimeSpan
que representan diferencias o intervalos de fecha y hora.
utilice el cmdlet New-TimeSpan
proporcionando una fecha/hora Start
y End
como parámetros., Por ejemplo, si desea encontrar la diferencia entre el 23 de noviembre de 2020 a medianoche y el 31 de diciembre de 2020 a medianoche, puede usar el siguiente fragmento de código.
Usando objetosTimeSpan
, puede encontrar diferencias de fecha / hora en casi cualquier incremento que desee.
Comparar fechas
no solo puede encontrar diferencias en fechas y horas, sino que también puede compararlas utilizando operadores estándar de PowerShell. PowerShell sabe cuándo una fecha es » menor que «(anterior a) o» mayor que » (Posterior a) otra fecha.,
para comparar fechas, simplemente cree dos objetos DateTime
usando Get-Date
o quizás fundiendo cadenas con y luego usando operadores estándar de PowerShell como
lt
o gt
.
Puede ver un ejemplo simple de comparación de fechas a continuación.
#Declaring the datePS> $Date1 = (Get-Date -Month 11 -Day 14 -Year 2020)PS> $Date2 = Get-DatePS> $Date1 -lt $Date2True
convertir cadenas (Casting) a objetos DateTime
PowerShell también puede mostrar fechas en varios formatos., Por ejemplo, supongamos que tiene un archivo CSV o una hoja de cálculo con varias fechas definidas en el formato que ve a continuación en la columna date_time_utc
. El formato es actualmente YYYY-MM-DDThh:mm:ss.0000000Z
.
desea analizar este archivo y encontrar todas las filas con una fecha de siete días o más.
PowerShell, por defecto, no sabe que 2020-09-07T13:35:08.4780000Z
es una fecha y hora; sólo piensa que es una simple cadena de caracteres., Para que PowerShell lo entienda, primero debe convertirlo a un objeto DateTime
como Get-Date
devuelve.
para convertir una cadena a un objeto DateTime
, preface la cadena (o variable) con . Al hacer esto, PowerShell intenta interpretar la cadena como una fecha y hora y luego le proporciona todas las propiedades y métodos disponibles en este tipo de objeto.,
PS> $Date = "2020-09-07T13:35:08.4780000Z"PS> $DateMonday, September 07, 2020 1:35:08 PM
formato de fecha de PowerShell
ahora que conoce los métodos básicos para usar fechas, es hora de profundizar en el tema. Juguemos un poco más usando diferentes formatos para mostrar las fechas.
cada vez que se ejecuta Get-Date
, aparecerá una salida como Monday, September 07, 2020 1:35:08 PM
. Esta salida es en realidad un objeto DateTime
con propiedades y métodos; no una simple cadena., Sin embargo, puede convertir este objeto DateTime
en una cadena y representarlo de manera diferente utilizando varios métodos de formato de fecha.
métodos DateTime
Una forma de cambiar cómo se muestra un objeto DateTime
es mediante el uso de métodos en el objeto DateTime
., El DateTime
objeto tiene cuatro métodos que puede utilizar para cambiar el formato:
ToLongDateString()
ToShortDateString()
ToLongTimeString()
ToShortTimeString()
Usted puede ver un ejemplo del uso de la ToShortDateString()
y ToShortTimeString()
métodos a continuación.,
PS> $Date = $DatePS> $date.ToShortDateString() + " " + $date.ToShortTimeString()9/7/2020 7:05 PM
El Parámetro de Formato
Una forma de cambiar el formato de fecha de un DateTime
objeto es mediante el uso de Get-Date
para generar el objeto y el Format
parámetro para cambiar el formato. El parámetro Format
acepta una cadena de caracteres cada uno que representa cómo debe verse una cadena de fecha / hora.
Puede ver algunos ejemplos de los caracteres que puede usar con el parámetro Format
.,
consulte la documentación de Microsoft para obtener un desglose completo de todos los caracteres que puede usar con el parámetro
Format
.
verá tan pronto como use el parámetro Format
, Get-Date
ya no devuelve un objeto DateTime
pero ahora cadena una cadena.,
PS> (Get-Date -Format D).GetType().FullNameSystem.String
El UFormat Parámetro
Similar a la de Format
parámetro, también tiene un UFormat
parámetro con el Get-Date
cmdlet. El parámetro UFormat
le permite definir formatos de fecha utilizando formato de fecha UNIX.
el parámetroUFormat
es similar al parámetroFormat
en el sentido de que puede combinar caracteres de formato de fecha para cambiar cómo se devuelve la fecha como una cadena. Por ejemplo, pruebe los siguientes formatos y vea lo que se devuelve.,
PS> Get-Date -UFormat %APS> Get-Date -UFormat %bPS> Get-Date -UFormat %B
También puede combinar estos caracteres de formato de fecha. El fragmento de código a continuación utiliza los caracteres d
, m
, y Y
para devolver la fecha en el formato dd-mm-yyyy and
utiliza el para devolver el formato de hora 12 horas utilizando el carácter zona horaria t
.
PS> Get-Date -UFormat "%d-%m-%Y %r %Z"22-11-2020 06:10:55 PM +05
consulte la documentación de Microsoft para obtener un desglose completo de todos los caracteres que puede usar con el parámetro UFormat
.
Deja una respuesta