I need to be able to convert a date to a time stamp, an epoch in milliseconds. All I see online are for converting milliseconds to NSDate and not the other way round. Any help out there?
Convert from human-readable date to epochlong epoch = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 01:00:00").getTime() / 1000; Timestamp in seconds, remove '/1000' for milliseconds. date +%s -d"Jan 1, 1980 00:00:01" Replace '-d' with '-ud' to input in GMT/UTC time.
Epoch Time Difference FormulaMultiply the two dates' absolute difference by 86400 to get the Epoch Time in seconds – using the example dates above, is 319080600.
In computing, Unix time (also known as Epoch time, Posix time, seconds since the Epoch, Unix timestamp or UNIX Epoch time) is a system for describing a point in time. It is the number of seconds that have elapsed since the Unix epoch, excluding leap seconds. The Unix epoch is 00:00:00 UTC on 1 January 1970.
You need to multiply it by 1000 before adding a millisecond to it.
NSTimeInterval is a double that already contains sub-second data after the decimal point. Depending what you need, your conversion could be a simple as multiplying by 1000.
- (void)testDateFormat { NSDate *date = [NSDate date]; NSLog(@"Time: %f", floor([date timeIntervalSince1970] * 1000)); NSLog(@"Time: %f", floor([date timeIntervalSince1970])); NSLog(@"Time: %lli", [@(floor([date timeIntervalSince1970] * 1000)) longLongValue]); NSLog(@"Time: %lli", [@(floor([date timeIntervalSince1970])) longLongValue]); } // Result // 2013-04-15 13:28:11.284 TestApp[10469:907] Time: 1366057691284.000000 // 2013-04-15 13:28:11.286 TestApp[10469:907] Time: 1366057691.000000 // 2013-04-15 13:28:11.287 TestApp[10469:907] Time: 1366057691284 // 2013-04-15 13:28:11.288 TestApp[10469:907] Time: 1366057691
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With