我的格式是这样的 -
date= "2 march 2018"
我想将其转换为格式" 20180302"。我正在使用以下方法:
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
return [year, month, day].join('');
一切正常,但如果我的日期没有日期或月份,它应该返回空值而不是日期和月份。例如:如果我的日期输入是
date= "march 2018"
比,day ='' + d.getDate()应该返回空。如果日期是" 2018"比月='' +(d.getMonth()+ 1)和day ='' + d.getDate()应该返回null。我知道这是一个不好的做法,但在我的应用程序中,我需要检查日期和月份是否存在..
答案 0 :(得分:1)
var date= "2 march 2018";
var sp_date=date.split(" ");
var d = new Date(date);
if(sp_date.length==3){
month = '' + (d.getMonth() + 1);
day = '' + d.getDate();
year = d.getFullYear();
}else if(sp_date.length==2){
if(isNaN(Number(sp_date[0]))===false){
day = sp_date[0];
month='';
year=sp_date[1];
}else{
day ='';
month = '' + (d.getMonth() + 1);
year = d.getFullYear();
}
}else if(sp_date.length==1){
day ='';
month = '';
year = d.getFullYear();
}
return [year, month, day].join('');
答案 1 :(得分:1)
你可以使用moment.js一行完成,查看下面的jsfiddle链接
http://jsfiddle.net/rLjQx/46813/
private Set<Long> getAllIds(List<MyClass> fetchedElements) {
Set<Long> myIds = new HashSet<>();
myIds.addAll(fetchedItems.stream().map(MyClass::getBlueId).collect(Collectors.toList()));
myIds.addAll(fetchedItems.stream().map(MyClass::getRedId).collect(Collectors.toList()));
myIds.addAll(fetchedItems.stream().map(MyClass::getGreenId).collect(Collectors.toList()));
return myIds;
}