set today's date in UIDatePicker not device date [duplicate] - ios

This question already has answers here:
NSDate: Get precise time independent of device clock? [duplicate]
(4 answers)
Closed 5 years ago.
While showing date picker I'm using this code to show today's date
[_datePicker setDate:[NSDate date]];
If I change the device date to some other date the date picker's date is also changing... But I need to show today's date... How to do this

It sounds like what you want to do is to get the date from an authoritative source, like a NTP server.
Some places where you can find open source include "ios-ntp" or "NHNetworkTime", the latter of which (once building within your project) is as simple as doing "NSDate *networkDate = [NSDate networkDate];".
And once you have that date, that's the NSDate object you pass into your _datePicker.

Today's date is always [NSDate date]. If you change device date, device doesn't know anything else.
You can try http://www.ntp.org to get Internet Time instead.

You can fetch the current Date/Time from the backend server and set it to the Date Picker.

Related

How to get current NSDate in current timezone? [duplicate]

This question already has answers here:
Get NSDate from NSDate adjusted with timezone
(2 answers)
Closed 6 years ago.
I need to get current time in NSDate, not swift. I tried to do this like on screenshot, but the final nsdate is in wrong timezone.
An NSDate does not have a time zone. It records an instant in time on planet Earth. It is DISPLAYED in a particular time zone.
An NSDateFormatter will convert between NSDate objects and date strings (in either direction).
If you install a time zone into your date formatter then it will convert dates to/from strings using that time zone. If you don't specify a time zone it will use the user's current time zone.
If you try to display an NSDate using the Swift print statement or NSLog then it will be displayed in UTC. Always.
The code you've posted that prints strDate, your date string you created using a date formatter, is correct. The line `print(localDate!) is meaningless.
To repeat: NSDate objects do not have a time zone. When you log them to the console, they will always be displayed in UTC. If you want to see them in your local time zone then you need to use date formatter like you are doing.

NSDate without timezone for a UIDatePicker

I have a UIDatePicker which I'm using to choose the opening time of a shop.
The problem is that the date picker is changing the displayed time depending on the timezone, but I just want to show the time exactly as it appears in the NSDate.
For example, my NSDate is set as 2001-01-01T09:15:00Z. i.e. 9:15am on 1st Jan 2001.
I set my UIDatePicker date to this date, but when I open the app in Spain (which is GMT-1) I see 10:15am.
I'm not using a dateFormatter here - just regular NSDate. Is there a way of telling the UIDatePicker to ignore the timezone?
Or perhaps I shouldn't be storing the time as an NSDate because of the inherent timezone issues?
NSDatePicker has timeZone property - The time zone reflected in the date displayed by the date picker.
See if that will help you...

change date of NSDate while keeping the time same

I get current time or time stamp of some image. I have to change only date while the time should not be changed. For example I use [NSdate date] to get current date and time and store in an NSdate object that is "2014-01-10 09:58:47 +0000". Now change only the date part, keeping the time same as it is "2013-11-09 09:58:47 +0000"
How can I achieve that?
Convert the date into it's date components (which includes the time part), change the date part of the components to be for the new day, and create a new date based on these components.
dateByAddingDateComponents is also another way to do it.
It's all described in the Calendrical Calculations documentation.

Xcode - Connect a Date Picker and a Time Picker to the same NSDate

I have a Time Picker and a Date Picker.
How to get the time included with the date in same NSDate?
I need the time between 2 dates (including time) How?
I have the code for getting time between dates, i just need help to include the time.
By default, a UIDatePicker is set to allow the user to choose a Date and a Time. The mode can be set to either Date, Time or Date and Time. As long as the mode of your UIDatePicker is set to Date and Time it will set both the date and time in the linked NSDate object.
If you really want to have two separate UIDatePickers, one set to Date and the other to Time then you will need to link them to two different NSDate objects and then have code behind to combine the two NSDates into a single NSDate using something like the code here Problem combining a date and a time into a single NSDate

iOS: get date and time from separate pickers and add them together? [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
NSDateComponents of an NSDate
I have set up two UIDatePickers in InterfaceBuilder: one of them has it's mode set to "Date", and the other one's mode is set to "Time".
I have successfully taken the date from the "Date" picker in my ViewController, but it comes with a time...
My question is: how can I use both pickers to get a single date?
(for those of you wondering why I'm not using the "Date and Time" mode: this wouldn't make it easy for a user to select a year)
Many thanks,
Look at the documentation for NSDate and NSDateComponents.
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtCalendars.html#//apple_ref/doc/uid/TP40003470

Resources