我正在使用dateformatter在我的应用程序中获取日期和时间.但是当我更改手机的语言时,我遇到了一个问题.日期格式化器返回我选择的手机语言的日期和时间,因为我们的应用程序崩溃,因为我们不支持多种语言.
请找到以下代码段:
NSDate *date=[NSDate date];
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
NSDateFormatter *objDayFotmatter=[[NSDateFormatter alloc]init];
[objDayFotmatter setDateFormat:@"EEEE"];
NSString *objTime=[objTimeFotmatter stringFromDate:date];
NSString *objDay=[objDayFotmatter stringFromDate:date];
NSLog(@"objTime=%@",objTime);
NSLog(@"objDay=%@",objDay);
Run Code Online (Sandbox Code Playgroud)
当我选择手机语言作为古吉拉特语(印度)时,我使用nslog看到的输出如下,
2011-11-24 11:23:20.221 Belkin_Plugin[1110:707] objTime=??:??
2011-11-24 11:23:20.227 Belkin_Plugin[1110:707] objDay=???????
Run Code Online (Sandbox Code Playgroud) 我需要能够将日期转换为时间戳,一个以毫秒为单位的纪元.我在网上看到的只是将毫秒转换为NSDate,而不是相反.有帮助吗?
如何用swift找到一年中的天数?有没有一种我没有看到的简单方法,或者我必须找到从1月1日到当前日期的秒数并除以一天中的秒数?
我有一个自定义对象"会议"我正在添加数组中的所有对象.我想要做的是从Meeting.meetingDate排序数组.
我也在使用Parse,我有两个查询并将结果放入一个数组中.
我能够将数据添加到"meetingData",但不能对其进行排序.
有人能帮忙吗?
所以我的阵列是:
var meetingsData = [Meeting]()
Run Code Online (Sandbox Code Playgroud)
会议班是:
public class Meeting: PFObject, PFSubclassing
{
@NSManaged public var meetingTitle: String?
@NSManaged public var meetingLocation: String?
@NSManaged public var meetingNotes: String?
@NSManaged public var meetingDuration: String?
@NSManaged public var createdBy: User?
@NSManaged public var meetingTime: NSDate?
@NSManaged public var meetingDate: NSDate?
}
Run Code Online (Sandbox Code Playgroud)
数组的内容如下:
<Meeting: 0x125edd040, objectId: xIqx7MoRd6, localId: (null)> {
createdBy = "<PFUser: 0x125d627c0, objectId: RKCWJRj84O>";
meetingDate = "2015-08-29 17:07:12 +0000";
meetingDuration = "2 hours 2 mins";
meetingLocation = 4th …Run Code Online (Sandbox Code Playgroud) 我正在创建一个日期NSDateComponents().
let startDate = NSDateComponents()
startDate.year = 2015
startDate.month = 9
startDate.day = 1
let calendar = NSCalendar.currentCalendar()
let startDateNSDate = calendar.dateFromComponents(startDate)!
Run Code Online (Sandbox Code Playgroud)
...现在我要打印自startDate今天以来的所有日期,NSDate().我已经尝试过玩NSCalendarUnit,但它只输出整个差异,而不是单个日期.
let unit: NSCalendarUnit = [.Year, .Month, .Day, .Hour, .Minute, .Second]
let diff = NSCalendar.currentCalendar().components(unit, fromDate: startDateNSDate, toDate: NSDate(), options: [])
Run Code Online (Sandbox Code Playgroud)
如何在两个Date对象之间打印所有日期?
编辑2019
与此同时,课程的命名已经改变 - NSDate现在只是Date.NSDateComponents现在被称为DateComponents.NSCalendar.currentCalendar()现在只是Calendar.current.
我想要两个NSInteger一年,一个月回去一个月.例如现在是2011-01我怎么能得到2010-12.添加是一回事,但我想减去.
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
[calendar release];
NSString * pdf_name = [NSString stringWithFormat:@"file_%d_%02d.pdf", year, month];
Run Code Online (Sandbox Code Playgroud)
迎接endo
编辑:我的解决方案
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
BOOL substractOneMonth …Run Code Online (Sandbox Code Playgroud) 我有一个时间在GMT的字符串,我想根据系统时区制作但它不能正常工作 -
NSLog(@"Time Str = %@",Time);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy hh:mm a"];
[NSTimeZone resetSystemTimeZone];
NSLog(@"system time zone = %@",[NSTimeZone systemTimeZone]);
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *date = [dateFormat dateFromString:Time];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSLog(@"date from string = %@",date);
NSLog(@"string from date = %@",[dateFormat stringFromDate:date]);
Run Code Online (Sandbox Code Playgroud)
控制台输出 -
////////////////////////////////////////////////// //////////////////////////////////////////////
Time Str = 09-12-2011 07:57 AM
系统时区=亚洲/加尔各答(IST)抵消19800
date from string = 2011-12-09 02:27:00 +0000
字符串从日期= 09-12-2011 07:57 AM
////////////////////////////////////////////////// //////////////////////////////////////////////
加尔各答距格林威治标准时间+5:30,因此日期时间应为1:27,但显示时间为02:27.此外,当我从这个日期拿出一个字符串时,它向我显示了我用来制作日期的相同刺痛,我希望根据系统时区更新字符串.
谢谢