Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.
Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Convert V_String Date/Time from WEEKDAY, MONTH DD, YEAR HH:MM format

ddiesel
13 - Pulsar
13 - Pulsar

What's the best approach to convert dates in the following format to Alteryx format?

 

DateTime
Friday, March 09, 2018 4:44 PM
Thursday, March 08, 2018 3:38 PM
Wednesday, March 07, 2018 10:45 PM
Tuesday, March 06, 2018 2:36 AM
Monday, March 05, 2018 9:07 PM

 

Right now I'm parsing by \s and then piecing it back together into YYYY-MM-DD HH:MM format after adding 12 hours to PM times.

 

I know there's a more sophisticated way... What's the best approach?

 

 

5 REPLIES 5
danrh
13 - Pulsar

I would think you'd be able to do this in one step, but I can't seem to get it right.  I'd use the DateTime tool to parse it initially, then a formula to add the 12 hours like you're already doing:

image.png

MarqueeCrew
20 - Arcturus
20 - Arcturus

@ddiesel,

 

I'd like to see that the format %X would do the trick inside of a Parse, but here's how I would do it:

 

IF RIGHT([Date],2)="AM" THEN
DateTimeParse(Regex_Replace([Date],"(.*)|s[AP]m",'$1'),"%A,%B %d, %Y %H:%M")
ELSEIF
RIGHT([Date],2)="PM" THEN
DateTimeAdd(DateTimeParse(Regex_Replace([Date],"(.*)|s[AP]m",'$1'),"%A,%B %d, %Y %H:%M"),12,"hours")
Else
Null()
ENDIF

Cheers,

Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.
ddiesel
13 - Pulsar
13 - Pulsar

Thanks @danrh and @MarqueeCrew

 

Both suggestions get me close and are more efficient than my 5 tool workaround. Now I just need to adjust for the 12:00 PM hour. 12:00 noon is reading as 12:00 midnight. I'm going to play around with it but reply back if you have a good solution. Thanks!

 

SentDateTime
Saturday, March 10, 2018 12:33 PM3/11/2018 0:33
Saturday, March 10, 2018 2:32 PM3/10/2018 14:32
Saturday, March 10, 2018 1:58 PM3/10/2018 13:58
Saturday, March 10, 2018 3:59 AM3/10/2018 3:59
Saturday, March 10, 2018 3:14 AM3/10/2018 3:14
Friday, March 09, 2018 12:58 PM3/10/2018 0:58
danrh
13 - Pulsar

I'd probably add a condition in the formula tool to check if the hour is either noon or midnight and then re-adjusts the time:

 

DateTimeAdd([DateTime_Out],
IF Right([DateTime], 2)='PM'
THEN 12 ELSE 0 ENDIF +
Switch(DateTimeHour([DateTime_Out]),0,0,12,12,-12)
,'hours')

ddiesel
13 - Pulsar
13 - Pulsar

@danrh Thank you! I got it working yesterday with that same type of logic:

 

IF [DateTime3]="00" THEN DateTimeAdd([DateTime],-12,"hours") ELSE [DateTime] ENDIF

Again, your solution saves me a step though.

 

@danrh @MarqueeCrew ... thank you both! Between both your replies it's working well!

Labels
Top Solution Authors