Excel - How to convert US dates and times to UK dates and times

Anonymous
2021-05-14T17:03:30+00:00

Hello

I wonder if I could receive help with the following:

I have a long Excel spreadsheet where the dates and times are in US format and need to be changed to UK format. The problem is that the date and time need to be merged into one cell.

BEFORE HOW IT SHOULD LOOK
06/03/2021 06:PM 23/06/2021 18:00

Sometimes the data is laid out as below:

DATE TIME HOW IT SHOULD LOOK
06/03/21 06:PM 23/06/2021 18:00

Thanks for your help.

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
HansV 462.7K Reputation points MVP Volunteer Moderator
2021-05-14T21:28:56+00:00

That means that the values aren't real dates, but text values that look like dates.

  1. For a range with separate dates in a column:
  • Select the range.
  • On the Data tab of the ribbon, click Text to Columns
  • Click Next> twice.
  • In step 3 of the Text to Columns Wizard, select Date, and select MDY from the drop down.
  • Click OK.
  1. For a range with separate times in a column:
  • Select an empty cell and copy it.
  • Select the range with times.
  • Click the lower half of the Paste button and select Paste Special...
  • Select Add, then click OK.
  1. For a range with dates+times in a column:
  • Select the range.
  • Run the macro listed below.
  • You can discard the macro afterwards.

Sub Text2Date()
    Dim rng As Range
    Dim s As String
    Dim p As Long
    Dim d As String
    Dim t As String
    Dim a() As String
    Application.ScreenUpdating = False
    For Each rng In Selection
        s = rng.Text
        p = InStr(s, " ")
        d = Left(s, p - 1)
        a = Split(d, "/")
        t = Trim(Mid(s, p + 1))
        rng.Value = DateSerial(a(2), a(0), a(1)) + TimeValue(t)
    Next rng
    Selection.NumberFormat = "dd/mm/yyyy hh:nn"
    Application.ScreenUpdating = True
End Sub

Was this answer helpful?

30+ people found this answer helpful.
0 comments No comments
Answer accepted by question author
HansV 462.7K Reputation points MVP Volunteer Moderator
2021-05-16T08:48:31+00:00

I don't use PowerQuery much, so if the following is off, I hope that others will take me to task - criticism is welcome!

Try this:

Click in the column with dates-as-text.

On the Insert tab of the Ribbon, click Table.

Make sure that 'My table has headers' is ticked, then click OK.

On the Data tab of the ribbon, in the Get & Transform group, click 'From Table/Range'.

PowerQuery will automatically recognize the values as date/time and display them in your system date/time format (mine is yyyy-mm-dd hh:mm:ss)

Click Close & Load.

The result is a new table with 'real' date/time values:

You can now apply the desired format:

Was this answer helpful?

10+ people found this answer helpful.
0 comments No comments

45 additional answers

Sort by: Newest
  1. Anonymous
    2021-05-16T10:58:46+00:00

    Try selecting the entire used range before converting to a table. That works for me.

    Hi Hans,

    Power Query seems to have a problem handling null value. If there are blank rows within the range it "muddles" what comes after the blank row. (Incidentally the blank rows need to stay in place)

    This is an example that I've just run on Power Query. I think that the range needs to be continuous and not contain any blank rows for it to work.  As you can see the fourth row "10/02/2017 00:00" has not been changed, because it follows a blank row.

    BEFORE AFTER
    9/19/2018 12:00 AM 19/09/2018 00:00
    9/19/2018 12:00 AM 19/09/2018 00:00
    10/02/2017 00:00 10/02/2017 00:00

    Was this answer helpful?

    0 comments No comments
  2. HansV 462.7K Reputation points MVP Volunteer Moderator
    2021-05-16T10:27:39+00:00

    Try selecting the entire used range before converting to a table. That works for me.

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2021-05-16T09:51:02+00:00

    I don't use PowerQuery much, so if the following is off, I hope that others will take me to task - criticism is welcome!

    Try this:

    Image

    Click in the column with dates-as-text.

    On the Insert tab of the Ribbon, click Table.

    Make sure that 'My table has headers' is ticked, then click OK.

    Image

    Image

    On the Data tab of the ribbon, in the Get & Transform group, click 'From Table/Range'.

    PowerQuery will automatically recognize the values as date/time and display them in your system date/time format (mine is yyyy-mm-dd hh:mm:ss)

    Image

    Click Close & Load.

    The result is a new table with 'real' date/time values:

    Image

    You can now apply the desired format:

    Image

    Hi Hans,

    There is just one little problem with Power Query. I've just tried it on an Excel column with 7000 rows. Where there are blank rows in the column, the data that immediately follows the blank row is not changed. I also found some errors... Perhaps It's better to try it on a few rows at a time....

    Was this answer helpful?

    0 comments No comments