Страница 1 из 1
Изменение формата даты!
Добавлено: 17 окт 2016, 16:58
garrik_igorek
Добрый день, помогите пожалуйста со следующей проблемой.
В csv есть даты в следующем формате "2016-07-16 03:49:48.000" , а нужно в таком "2016-07-16T00:00:00Z" , НО только что бы еще и секунды выводил.
Всё это дело делаю в Azure ml studio, там написал следующий скрипт:
Код: Выделить всё
timeformat <- "%Y-%m-%d"
data$BegDate <- as.POSIXct(as.numeric(as.POSIXct(data$BegDate, format = timeformat, tz = "UTC", origin = "1970-01-01"), tz = "UTC"), tz = "UTC", origin = "1970-01-01")
Он делает из такой даты "2016-07-16 03:49:48.000" такую "2016-07-16T00:00:00Z" опуская при этом часы, минуты и секунды, а их нужно оставить.
Помогите пожалуйста).
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 11:02
freeExec
Так может timeformat надо расширить до %h:%m:%s
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 14:04
garrik_igorek
пробовал с таким форматом
не работает так
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 15:09
nickleb
Не знаю как в Azure, но в R попробовал и вот так многострочно, но наверняка:
Код: Выделить всё
dt <- as.character("2016-07-16 03:49:48.000")
YYYYdt <- substr(dt, 1, 4)
MMdt <- substr(dt, 6, 7)
DDdt <- substr(dt, 9, 10)
HHdt <- substr(dt, 12, 13)
mmdt <- substr(dt, 15, 16)
SSdt <- substr(dt, 18, 19)
#ISOdatetime
dtISO <- ISOdatetime(YYYYdt, MMdt, DDdt, HHdt, mmdt, SSdt, "GMT")
dtISO
#string dtISO
stringdtISO <- paste(YYYYdt, "-" , MMdt, "-", DDdt, "T", HHdt, ":", mmdt, ":", SSdt, "Z", sep="")
stringdtISO
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 15:47
nickleb
... или же так:
Код: Выделить всё
dt <- as.character("2016-07-16 03:49:48.000")
dtString <- gsub(" ", "T", dt)
dtString <- gsub(substr(dtString,
nchar(dtString)-3,
nchar(dtString)),
"Z", dtString)
dtString
... вариантов - море...
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 16:24
garrik_igorek
Предпоследний вариант отработал как надо, но почему то не поставил тип для столбца "Feature Type: DateTime Feature", а сделал его "Feature Type: Object Feature"
Re: Изменение формата даты!
Добавлено: 18 окт 2016, 20:25
nickleb
... ещё один вариант в R:
Код: Выделить всё
dt <- as.character("2016-07-16 03:49:48.000")
dtformat = "%Y-%m-%dT%H:%M:%SZ"
dtNewFormat <- strftime(dt, format=dtformat, tz="")
dtNewFormat
Re: Изменение формата даты!
Добавлено: 19 окт 2016, 08:41
garrik_igorek
вот такая ошибка у меня в скрипте
character string is not in a standard unambiguous format
вот сам скрипт
Код: Выделить всё
colnames(data) <- c("Id", "DeviceTypeId", "DeviceId", "EventTypeId", "BegDate","EndDate", "Duration", "Tag", "MobileZoneId", "StaticZoneId", "DateCreation", "Src", "IsLoaded","DataDate", "Latitude", "Longitude", "IsSplited", "BaseEventId");
dt <- as.character(data$BegDate)
dtformat = "%Y-%m-%dT%H:%M:%SZ"
data$BegDate1 <- strftime(dt, format=dtformat, tz="")
Re: Изменение формата даты!
Добавлено: 19 окт 2016, 10:11
nickleb
в R нижеследующий фрагмент проходит без ошибок и предупреждений:
Код: Выделить всё
data <- data.frame (c(1,2,3), c("2016-07-16 03:49:48.000", "2016-07-16 03:49:49.000", "2016-07-16 03:49:50.000"))
colnames(data) <- c("Id", "BegDate")
dtformat = "%Y-%m-%dT%H:%M:%SZ"
data$BegDate <- strftime(data$BegDate, format=dtformat, tz="")
data$BegDate
Azure ML Studio у меня нет
- проверить не могу ...
Re: Изменение формата даты!
Добавлено: 20 окт 2016, 08:24
nplatonov
Если понадобятся миллисекунды, то
Код: Выделить всё
format(as.POSIXlt("2016-07-16 03:49:48.987",tz="UTC"),"%Y-%m-%dT%H:%M%:%OS3Z")