This question already has answers here:
Can't convert from NSString to NSDate
(2个答案)
7年前关闭。
我正在尝试将NSString转换为秒,但是我做错了事。这是我的代码:
_myTextField中的文本来自uidatepicker,格式为HH:mm。
我总是在nslog上得到空结果。我尝试在使用NSLog之前将dateFromString转换回字符串,但仍然收到空消息。
根据要求,这里是我使用的更多代码:
我有一个调用uidatepicker的文本字段,该字段加载在super viewdidload上:
这是updateTextfield函数:
...或更直截了当;
(2个答案)
7年前关闭。
我正在尝试将NSString转换为秒,但是我做错了事。这是我的代码:
_myTextField中的文本来自uidatepicker,格式为HH:mm。
NSString *teste = [[NSString alloc]init];
teste = [_myTextField text];
NSDateFormatter *formatarteste = [[NSDateFormatter alloc]init];
[formatarteste setDateFormat:@"s"];
NSDate *dateFromString = [[NSDate alloc]init];
dateFromString = [formatarteste dateFromString:teste];
NSLog(@"%@", dateFromString);
我总是在nslog上得到空结果。我尝试在使用NSLog之前将dateFromString转换回字符串,但仍然收到空消息。
根据要求,这里是我使用的更多代码:
我有一个调用uidatepicker的文本字段,该字段加载在super viewdidload上:
[_myTextField setText:@"03:00"];
UIDatePicker *datepicker = [[UIDatePicker alloc]init];
//[datepicker setDate:[NSDate date]];
[datepicker setDatePickerMode:UIDatePickerModeTime];
[datepicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[self.myTextField setInputView:datepicker];
这是updateTextfield函数:
UIDatePicker *picker = (UIDatePicker*)self.myTextField.inputView;
NSDateFormatter *formatar = [[NSDateFormatter alloc]init];
[formatar setDateFormat:@"HH:mm"];
NSString *textoDoField = [formatar stringFromDate:picker.date];
self.myTextField.text = [NSString stringWithFormat:@"%@", textoDoField];
最佳答案
一种从时间午夜起计算秒数的方法(不一定是最简单的方法);
// NSString *teste = @"14:52";
NSDateFormatter *formatarteste = [[NSDateFormatter alloc]init];
[formatarteste setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[formatarteste setDateFormat:@"HH:mm"];
NSDate *dateFromString = [formatarteste dateFromString:teste];
NSTimeInterval interval =
[dateFromString timeIntervalSinceDate:
[NSDate dateWithString: @"2000-01-01 00:00:00 +0000"]];
NSLog(@"%f", interval);
// >>> 53520
...或更直截了当;
// NSString *teste = @"14:52";
int h,m;
const char *bytes = [teste UTF8String];
sscanf(bytes, "%d:%d", &h,&m);
int seconds = h*3600+m*60;
NSLog(@"%d", seconds);
// >>> 53520
关于ios - iOS将NSString的小时数转换为秒数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18791316/