Получение смещения часового пояса клиента в JavaScript

Это код моей базы решений на решении MasterGaurav:

private void  launchComponent(String packageName, String name){
    Intent launch_intent = new Intent("android.intent.action.MAIN");
    launch_intent.addCategory("android.intent.category.LAUNCHER");
    launch_intent.setComponent(new ComponentName(packageName, name));
    launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    activity.startActivity(launch_intent);
}

public void startApplication(String application_name){
    try{
        Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");

        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        List<ResolveInfo> resolveinfo_list = activity.getPackageManager().queryIntentActivities(intent, 0);

        for(ResolveInfo info:resolveinfo_list){
            if(info.activityInfo.packageName.equalsIgnoreCase(application_name)){
                launchComponent(info.activityInfo.packageName, info.activityInfo.name);
                break;
            }
        }
    }
    catch (ActivityNotFoundException e) {
        Toast.makeText(activity.getApplicationContext(), "There was a problem loading the application: "+application_name,Toast.LENGTH_SHORT).show();
    }
}
521
задан Marcin Orlowski 27 November 2018 в 05:44
поделиться

5 ответов

 var смещение = новая дата (). GetTimezoneOffset (); console.log (offset); 

Смещение часового пояса - это разница в минутах между временем по Гринвичу и местным временем. Обратите внимание: это означает, что смещение положительное, если местный часовой пояс отстает от UTC, и отрицательное, если оно впереди. Например, если ваш часовой пояс - UTC + 10 (восточное стандартное время Австралии), будет возвращено -600. Переход на летнее время не позволяет этому значению быть постоянным даже для данной локали.

Обратите внимание, что не все часовые пояса смещены на целые часы: например, для Ньюфаундленда это значение UTC минус 3 часа 30 минут (выход на летнее время вне уравнения).

548
ответ дан 22 November 2019 в 22:11
поделиться

С вы можете найти текущий часовой пояс как

console.log(moment().utcOffset()); // (-240, -120, -60, 0, 60, 120, 240, etc.)
<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>
<час>

С помощью вы можете найти текущий часовой пояс как

console.log(dayjs().utcOffset()); // (-240, -120, -60, 0, 60, 120, 240, etc.)
<script src="https://unpkg.com/dayjs@1.8.10/dayjs.min.js"></script>

Оба API возвращают utc смещение в минутах.

5
ответ дан Fizer Khan 27 November 2018 в 05:44
поделиться

Если все, что вам нужно, это сокращение часового пояса «MST» или «EST»:

function getTimeZone(){
    var now = new Date().toString();
    var timeZone = now.replace(/.*[(](.*)[)].*/,'$1');//extracts the content between parenthesis
    return timeZone;
}
3
ответ дан JohnP2 27 November 2018 в 05:44
поделиться

Это было бы моим решением:


    // For time zone:
    const timeZone = /\((.*)\)/.exec(new Date().toString())[1];
    
    // Offset hours:
    const offsetHours = new Date().getTimezoneOffset() / 60;
    
    console.log(`${timeZone}, ${offsetHours}hrs`);
0
ответ дан 22 November 2019 в 22:11
поделиться

try getTimezoneOffset () объекта Date :

var curdate = new Date()
var offset = curdate.getTimezoneOffset()

Этот метод возвращает смещение часового пояса в минутах, которое является разницей между GMT и местным время в минутах.

12
ответ дан 22 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: