Try it online!

# APL (Dyalog APL), 45 bytes

Try it online!

2 explanation and example run

### Expression

Takes two strings as right argument.

### Explanation

24 60⊤ the number-to-base-a24b60 conversion

∘ of

⍎ the evaluation

∘ of

⍕ the formatted (i.e. flattened with separating spaces)

('+-'∩⍕) intersection of "+-" and the formatted input (this extracts the plus or minus)

, followed by

(...)¨ the following for each of the inputs (the time and the offset)

0 60⊥ the ab60-to-number conversion of

2⊃ the second element of

':'⎕VFI the, using colon as field separator, Verified and Fixed Input of

¯5∘↑ the last five characters ("hh:mm")

### Step-by-step on "17:25" and "UTC+09:00"

The left-side expression on the right side data, gives the data of the next line.


'17:25' 'UTC+09:00'
/     /   \         \
(...)¨ applies the function train to both inputs
/     /       \         \
¯5∘↑               '17:25'         'UTC+09:00'
':'⎕VFI            '17:25'         '09:00'
2⊃            (1 1)(17 25)         (1 1)(9 0)
0 60⊥                17 25         9 0
1045         540
\  \       / /
This is where ¨ stops, and execution continues on the resulting list
\  \   / /
'/',                      1045 540
('+-'∩⍕),             '/' 1045 540
⍕                 '+' '/' 1045 540
⍎                   '+ / 1045 540'
24 60⊤                        1585
2 25


### Expression

Takes two strings as right argument.

### Explanation

24 60⊤ the number-to-base-a24b60 conversion

∘ of

⍎ the evaluation

∘ of

⍕ the formatted (i.e. flattened with separating spaces)

('+-'∩⍕) intersection of "+-" and the formatted input (this extracts the plus or minus)

, followed by

(...)¨ the following for each of the inputs (the time and the offset)

0 60⊥ the ab60-to-number conversion of

2⊃ the second element of

':'⎕VFI the, using colon as field separator, Verified and Fixed Input of

¯5∘↑ the last five characters ("hh:mm")

### Step-by-step on "17:25" and "UTC+09:00"

The left-side expression on the right side data, gives the data of the next line.


'17:25' 'UTC+09:00'
/     /   \         \
(...)¨ applies the function train to both inputs
/     /       \         \
¯5∘↑               '17:25'         'UTC+09:00'
':'⎕VFI            '17:25'         '09:00'
2⊃            (1 1)(17 25)         (1 1)(9 0)
0 60⊥                17 25         9 0
1045         540
\  \       / /
This is where ¨ stops, and execution continues on the resulting list
\  \   / /
'/',                      1045 540
('+-'∩⍕),             '/' 1045 540
⍕                 '+' '/' 1045 540
⍎                   '+ / 1045 540'
24 60⊤                        1585
2 25

1

# Dyalog APL, 45 bytes

24 60⊤∘⍎∘⍕('+-'∩⍕),'/',(0 60⊥2⊃':'⎕VFI ¯5∘↑)¨