Well, I've managed to emulate exactly what the PHP developer was doing, which means it's a bit hacky:
Dim intEvent As Integer = CInt(strCurrentEvent.Substring(0, 3))
Dim intTime0 As Integer = CInt(strCurrentEvent.Substring(3, 3))
Dim intTime1 As Integer = CInt(strCurrentEvent.Substring(6, 3))
Dim intTime2 As Integer = CInt(strCurrentEvent.Substring(9, 3))
Dim intTime3 As Integer = CInt(strCurrentEvent.Substring(12, 3))
Dim datDate As DateTime = New Date(1970, 1, 1, 1, 0, 0).AddSeconds(CInt("&H" & String.Format("{0:x4}", (intTime3 << 8) Or intTime2) & String.Format("{0:x4}", (intTime1 << 8) Or intTime0)))
(With extra date offset to convert the time to GMT)
Can anyone think of a less "hacky" way to do this?