IOS:将NSDate对象转换为字符串以获取当前时间

时间:2016-05-09 13:32:12

标签: ios objective-c xcode outputstream

我使用NSOutputStream从客户端(IOS设备)向服务器(PC设备)输出数据。 在下面的代码中我使用outputStream输出一些数据并且(此代码100%工作)

 NSString *response  = @" Today's Sunny  \n  ";
 NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
 [outputStream write:[data bytes] maxLength:[data length]]; 

我想使用 Outputstream 以这种格式(hh:mm:ss)输出当前时间(09:24.00)

这是我试过的

  NSDate *currentTime = [NSDate date]; 
  NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
  [formatter setDateFormat:@"hh:mm:ss"];
  //outputstream here 

我非常感谢您对此事的帮助

4 个答案:

答案 0 :(得分:1)

您需要将日期转换为字符串,然后将其添加到输出流中。

使用:

NSDate *currentTime = [NSDate date]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"hh:mm:ss"];
NSString *timeString = [formatter stringFromDate:currentTime];

然后,您可以在输出流中发送timeString

答案 1 :(得分:1)

看看这个,它拥有你在iOS上进行日期编程所需的一切 http://rypress.com/tutorials/objective-c/data-types/dates

使用一些代码示例

更新了

将当前时间从NSDate转换为NSString:

NSDate *currentTime = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setCalendar:[NSCalendar currentCalendar]];
[dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
[dateFormatter setDateFormat:@"M.d.y"];

NSString *stringResult = [dateFormatter stringFromDate:currentTime];

设置CalendarTimeZone是可选的,但如果需要可以使用它们。您还可以使用不同的选项,例如NSCalendarIdentifierGregoriantimeZoneForSecondsFromGMT:等。

dateFormat有很多选项,例如

  

M / d / y - > 2012年11月4日

     

MM / dd / yy - > 12年11月4日

     

MMM d,'' yy - > 11月4日,' 12

     

h:mm a - >晚上8:09

或者,您也可以使用dateStyletimeStyle

[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];

答案 2 :(得分:0)

如果有人在Swift中需要Assam + Adam的代码,那么它就是:

var currentTime:NSDate  = NSDate.date()

var formatter:NSDateFormatter  = NSDateFormatter.alloc().init()
formatter.setDateFormat("hh:mm:ss")

var timeString:NSString  = formatter.stringFromDate(currentTime)
outputStream.write(timeString.UTF8String(),maxLength:timeString.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))

答案 3 :(得分:-2)

这是完整的答案,感谢@Adam

NSDate *currentTime = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"hh:mm:ss"];
    NSString *timeString = [formatter stringFromDate:currentTime];
    [outputStream write:[timeString UTF8String]
              maxLength:[timeString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];