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

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

本问题已经有最佳答案,请猛点这里访问。

我正在使用nsoutputstream将数据从客户机(iOS设备)输出到服务器(PC设备)。在下面的代码中,我使用outputstream输出一些数据(此代码100%工作)

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

我想使用outputstream以这种格式(hh:mm:ss)输出当前时间,就像(09:24.00)一样。

这是我试过的

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

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


看看这个,它有关于iOS日期编程的所有你需要的东西http://rypress.com/tutorials/objective-c/data-types/日期

更新了一些代码示例:

将当前时间从nsdate转换为nsstring:

1
2
3
4
5
6
7
8
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

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


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

用途:

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

然后可以在输出流中发送时间字符串


如果有人需要阿萨姆亚当斯威夫特的密码,这里是:

1
2
3
4
5
6
7
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))

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

1
2
3
4
5
6
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]];