获取Cordova中的设备时间格式

时间:2014-04-02 03:40:50

标签: datetime cordova time phonegap-plugins

我在项目中使用Cordova 2.9。

我使用Moment.js处理大量日期/时间格式,因为应用程序以英语和普通话显示文本。

我有一个功能请求,询问如果设备时间格式为12小时或24小时格式,那么应用程序应该反映这一点。

目前我们全程使用24小时格式。

有没有办法在设备中设置时间格式,然后用它来设置应用程序级别的时间格式?

2 个答案:

答案 0 :(得分:2)

你需要编写一个插件来检测时间forma.in IOS通过目标c我们可以检测设备时间格式,也与java(android)相同。所以检查下面的代码并写一个插件。

<强> IOS

  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  [formatter setLocale:[NSLocale currentLocale]];
  [formatter setDateStyle:NSDateFormatterNoStyle];
  [formatter setTimeStyle:NSDateFormatterShortStyle];
  NSString *dateString = [formatter stringFromDate:[NSDate date]];
  NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
  NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
  BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);

  NSLog(@"IS 24 h format%@\n",(is24h ? @"YES" : @"NO"));

<强>的Android

String value = android.provider.Settings.System.getString(context.getContentResolver(), android.provider.Settings.System.TIME_12_24);

用于插件开发检查thisAndroidIOS

答案 1 :(得分:2)

你可以只使用内置的globalization plugin.如果你跑来跑去,

navigator.globalization.dateToString(
    new Date(),
    function (date) { alert('date: ' + date.value + '\n'); },
    function () { alert('Error getting dateString\n'); },
    { formatLength: 'short', selector: 'date and time' }
);

date.value将保存一个dateString,用于显示时间格式(只需检查&#34; AM&#34;或&#34; PM&#34;是否在字符串中)。