Мы могли бы только что использовать strptime
в данных вашей временной метки, за исключением того, что они имеют неправильный формат.strptime
не принимает строку часового пояса в качестве ввода, а также ваш числовой часовой пояс содержит двоеточие.В приведенном ниже коротком сценарии я генерирую метку времени, которую может обрабатывать strptime
.
x <- "Wed Apr 11 15:14:45 GMT+03:00 2018"
y <- gsub("(.*)[A-Z]{3}([+-]\\d{2}):(\\d{2})(.*)", "\\1\\2\\3\\4", x)
y
tz <- gsub(".*([A-Z]{3}).*", "\\1", x)
tz
output <- strptime(y, "%a %b %d %H:%M:%S %z %Y", tz)
output
strftime(output, format = "%d/%m/%Y %H:%M:%S", tz)
[1] "Wed Apr 11 15:14:45 +0300 2018"
[1] "GMT"
[1] "2018-04-11 12:14:45 GMT"
[1] "11/04/2018 12:14:45"
Демо
Позднее редактирование: Я только что увидел, что вы также хотите сгенерировать вывод временной метки.Для этого вы можете использовать другой вызов strftime
.
Общий рабочий процесс для подобных проблем (в R, базах данных и т. Д.) Состоит в том, чтобы сначала проанализировать текст по дате / метке времени, а затем взять эту датуобъект и визуализировать его обратно в строку, используя другую маску.