Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Convertir cadena a fecha

Hola chicos, Tengo una columna de cadena con esto: 20220307-06:30:06-GMT+0100 Estoy tratando de convertirlo en una columna de fecha sin éxito. ¿Cómo se podría hacer?
  • Syndicate_Admin's avatar
    4 years ago

    Hola, @mcflurry
    En Power Query con zona horaria:

    vojtechsima_0-1646660276179.png

    let
    Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")),
    Time = Time.FromText(Text.BetweenDelimiters([String], "-", "-")),
    getTimeZone = Text.AfterDelimiter([String], "T"),
    getPlusOrMinusZone = Text.Start(getTimeZone, 1),
    GetHourOfZone = Number.FromText( Text.Middle(getTimeZone,1,2)),
    GetMinuteOfZone = Number.FromText(Text.End(getTimeZone,2)),
    DateTime = DateTime.From(Date & Time),
    DateTimeZone = DateTime.AddZone(DateTime,GetHourOfZone,GetMinuteOfZone),
    CompleteWithCheck = if getPlusOrMinusZone = "+" then DateTimeZone else DateTime.AddZone(DateTime,-GetHourOfZone,GetMinuteOfZone)
    
    in CompleteWithCheck

    Agregue una nueva columna como esta. "Cadena" es su columna con la fecha proporcionada. Luego, simplemente cambie el tipo de la nueva columna a "fecha" o "fechahora" o "fecha-hora".

    Editar:
    Mejoré el código para comprobar si es "+" o "-".

  • Syndicate_Admin's avatar
    Syndicate_Admin
    4 years ago

    Regional Settings ya está en un país europeo.

    ¿Podría ayudarme a solucionarlo con su código?

    Supongo que es esta línea, pero no tengo el conocimiento para lograrlo ...

    Date = Date.FromText(Text.BeforeDelimiter(Text.ReplaceRange([String],8,1,"T"),"T")),

    Estoy transformando la columna original con formato unicode... y tal vez funcione.

    Sí, arreglado de esa manera, gracias.