0
Когда я использую функцию ниже единственного момента, когда она успешно возвращается, я использую ее только для одной строки. Если я попытаюсь вызывать функцию несколько раз в коде против разных уникальных строк, она возвращает ошибку «неповрежденной даты».Javascript: Функция работает корректно только при использовании одного экземпляра в коде
function oraDate(str) {
if(str.length > 0){
channelMap.put("StringCount", str.length);
if(str.length == 8){
channelMap.put("8 characters", "Date only");
var date = str.substring(0, 8);
var cDate = DateUtil.convertDate("yyyyMMdd", "yyyy-MM-dd", date);
return cDate + 'T' + '00:00:00';
} else if(str.length == 12){
channelMap.put("12 characters", "Date/time only");
var date = str.substring(0, 8);
var time = str.substring(8, 12);
var cDate = DateUtil.convertDate("yyyyMMddHHmm", "yyyy-MM-dd'T'HH:mm", date);
return cDate+':00';
} else if(str.length >= 14){
channelMap.put("14 characters", "Date/time w/seconds only");
var date = str.substring(0, 8);
var time = str.substring(8, 14);
var date_time = date+time;
var cDate = DateUtil.convertDate("yyyyMMddHHmmss", "yyyy-MM-dd'T'HH:mm:ss", date_time);
return cDate;
}
} else {
return '0001-01-01T00:00:00';
}
}
как ошибка говорит, один из времени вы призывающий формат функция строки не соответствуют формату дата ... –
Что is'channelMap'? Что такое 'DateUtil.convertDate'? Где ошибка? – Bergi
В случае '12' вы никогда не используете' time', а только 'date'. Может быть, это проблема для парсера? – Bergi