0 votos

Creación de una acción de automatización para convertir fechas

Objetivo: Acción rápida de Automator para convertir una cadena de "04-01-2004" (que representa el 01 de abril de 2004) y devolver un formato de fecha convertido de 2004-04-01.

Me gustaría usar esto en Finder, para resaltar cadenas en nombres de archivo, realizar una acción rápida sobre ellas, y luego hacer que Finder pegue el formato de fecha "convertido".

La acción actual del autómata es:

"Obtener texto especificado" - cadena de "04-01-2003"

Esto se pasa a

Ejecutar Shell script (shell = /usr/local/bin/python3), entrada pasada a stdin, con el siguiente script.

def convert_date_format(input_date):
    # Split the input date into components
    month, date, year = input_date.split('-')

    # Create the new date format
    new_date_format = f"{year}-{month}-{date}"

    return new_date_format

# Get input from the user
input_date = input("Enter a date in the format 'month-date-year': ")

# Call the conversion function
new_date_format = convert_date_format(input_date)

# Print the result
print("Converted date:", new_date_format)

Cuando se utiliza, la salida es

2003

04-01 (el año y la fecha están separados por un salto de línea)

Si simplemente cambio las variables en la línea 6 de

new_date_format = f"{year}-{month}-{date}

a

new_date_format = f"{date}-{month}-{date}

En su lugar obtengo el comportamiento esperado de 01-04-2003 en una sola línea

La razón por la que elegí preguntarlo en AskDifferent es que si ejecuto el mismo script en un IDE de Python, obtengo una salida de una sola línea consistente con la ordenación, es decir, 2003-04-01 o 01-04-2003.

Es cuando se ejecuta en el Ejecutar Shell script de Automator que el new_date_format = f"{year}-{month}-{date} devuelve la salida entrecortada en varias líneas.

0voto

Sparky_47 Puntos 21

Acción rápida final de Automator (AppleScript)

  1. Ejecutar AppleScript

    on run {input, parameters} set dateString to input as text -- Split the input into parts set AppleScript's text item delimiters to "-" set dateParts to every text item of dateString set AppleScript's text item delimiters to ""

    -- Check if input has three parts (month, date, year)
    if (count of dateParts) = 3 then
        set monthPart to item 1 of dateParts
        set datePart to item 2 of dateParts
        set yearPart to item 3 of dateParts
    
        -- Convert to desired format "date-month-year"
        set convertedDate to yearPart & "-" & monthPart & "-" & datePart
    
        -- Display the converted date
        -- display dialog "Converted date: " & convertedDate buttons {"OK"} default button "OK"
        return convertedDate
    else
        display dialog "Invalid input format. Please enter date in 'month-date-year' format." buttons {"OK"} default button "OK"
    end if

    end run

2. Copiar al portapapeles

3. Ejecutar AppleScript

on run {input, parameters}

    tell application "System Events" to keystroke "v" using command down

    return input
end run

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X