在我的应用程序的一个场景中,我得到日期字符串说12/15/2014 13:23:45(MM / dd / yyyy HH:mm:ss)和12/15/2014 13:23:45:928( MM / dd / yyyy HH:mm:ss:SSS)即我得到一个毫秒的日期字符串和一个没有毫秒的日期字符串。任何人都可以帮助我检查毫秒是否存在于给定字符串中,如果存在毫秒,则将布尔值赋值为true,并在毫秒不存在时将布尔值赋值为false。提前致谢
答案 0 :(得分:2)
布尔是你的主要目标吗?或者你需要一个NSDate并想知道使用哪个NSDateFormatter?
在这两种情况下,您都可以使用两个NSDateFormatters进行转换。只有其中一个可以工作,另一个将返回nil,因为它的dateFormat是错误的。
由于您没有指定语言,我编写了该代码的Swift版本:
var date: NSDate?
var hasMilliSeconds = false
let string = "12/15/2014 13:23:45:928"
//let string = "12/15/2014 13:23:45"
let dfWithMilliSeconds = NSDateFormatter()
dfWithMilliSeconds.dateFormat = "MM/dd/yyyy HH:mm:ss:SSS"
if let d = dfWithMilliSeconds.dateFromString(string) {
date = d
hasMilliSeconds = true
}
let dfWithoutMilliSeconds = NSDateFormatter()
dfWithoutMilliSeconds.dateFormat = "MM/dd/yyyy HH:mm:ss"
if let d = dfWithoutMilliSeconds.dateFromString(string) {
date = d
hasMilliSeconds = false
}
println("Has milliseconds: \(hasMilliSeconds)")
println("Date \(date?.descriptionWithLocale(NSLocale.currentLocale()))")
答案 1 :(得分:0)
以字符串形式转换你的日期并计算字符串的长度,并检查长度是否小于或等于你的毫秒长度然后它不是毫秒的其他毫秒
答案 2 :(得分:0)
您将NSDateFormatter设置为" dd / mm / yyyy hh:mm:ss:SSS" 然后将字符串转换为日期,如果得到一些结果,请确保该字符串在字符串中包含毫秒部分,但如果结果为nil,则确保该字符串不包含毫秒部分 代码如下
NSString *str1 = @"12/15/2014 13:23:45:928";
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
[formatter setCalendar:[[NSCalendar alloc] initWithCalendarIdentifier:@"gregorian"]];
NSLocale *local=[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:local];
[formatter setDateFormat:@"dd/mm/yyyy hh:mm:ss:SSS"];
NSDate *date = [formatter dateFromString:str1];
如果您觉得有用,请接受答案。
答案 3 :(得分:0)
尝试实施以下代码
NSString *stringDate = @"12/15/2014 13:12:45:967";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy HH:mm:ss:SSS"];
NSDate *newDate = [dateFormat dateFromString:stringDate];
if (newDate == nil){
NSLog(@"Miliseconds not found");
}else{
[dateFormat setDateFormat:@"SSS"];
NSLog(@"Miliseconds found %@",[dateFormat stringFromDate:newDate]);
}
答案 4 :(得分:-1)
计算字符串的长度并找出是否存在毫秒。此外,您可以计算其中的冒号数量并查找。