Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
React Native get relative time
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface TimerModule : NSObject <RCTBridgeModule>
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
public class TimerModule extends ReactContextBaseJavaModule {
public TimerModule(ReactApplicationContext reactContext) {
public String getName() {
return "Timer";
* Return a relative unit of time in seconds that cannot be influenced by the user
* @param promise
public void getRelativeTime(Promise promise) {
// System time in milliseconds
long time = android.os.SystemClock.elapsedRealtime();
// React Native bridge complains if we try to pass back a long directly
promise.resolve(Long.toString(time / 1000));
#import "TimerModule.h"
#include <sys/sysctl.h>
@implementation TimerModule
* Return a relative time in seconds that can't be tampered with by the user
RCT_EXPORT_METHOD(getRelativeTime: (RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
resolve([NSString stringWithFormat:@"%ld", [self uptime]]);
* Get the system up time in seconds
* Method originally from here:
- (time_t)uptime
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
time_t now;
time_t uptime = -1;
(void) time(&now);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0) {
uptime = now - (boottime.tv_sec);
return uptime;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.