IOS: 将一个NSDate对象转换成字符串获取当前时间

IOS: Convert a NSDate object into a string to get the current time

我正在使用 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 

非常感谢你在这件事上的帮助

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

使用:

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

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

这是完整的答案,感谢@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]];

如果有人需要Swift中的阿萨姆+亚当代码,这里是:

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))

看看这个,它包含您在 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 --> 11/4/2012

MM/dd/yy --> 11/04/12

MMM d, ''yy --> Nov 4, '12

h:mm a --> 8:09 PM

或者,您可以使用 dateStyletimeStyle

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