Это код моей базы решений на решении 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();
}
}
var смещение = новая дата (). GetTimezoneOffset (); console.log (offset);
Смещение часового пояса - это разница в минутах между временем по Гринвичу и местным временем. Обратите внимание: это означает, что смещение положительное, если местный часовой пояс отстает от UTC, и отрицательное, если оно впереди. Например, если ваш часовой пояс - UTC + 10 (восточное стандартное время Австралии), будет возвращено -600. Переход на летнее время не позволяет этому значению быть постоянным даже для данной локали.
Обратите внимание, что не все часовые пояса смещены на целые часы: например, для Ньюфаундленда это значение UTC минус 3 часа 30 минут (выход на летнее время вне уравнения).
С моментами вы можете найти текущий часовой пояс как
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>
С помощью dayjs вы можете найти текущий часовой пояс как
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 смещение в минутах.
Если все, что вам нужно, это сокращение часового пояса «MST» или «EST»:
function getTimeZone(){
var now = new Date().toString();
var timeZone = now.replace(/.*[(](.*)[)].*/,'$1');//extracts the content between parenthesis
return timeZone;
}
Это было бы моим решением:
// For time zone:
const timeZone = /\((.*)\)/.exec(new Date().toString())[1];
// Offset hours:
const offsetHours = new Date().getTimezoneOffset() / 60;
console.log(`${timeZone}, ${offsetHours}hrs`);
try getTimezoneOffset ()
объекта Date
:
var curdate = new Date()
var offset = curdate.getTimezoneOffset()
Этот метод возвращает смещение часового пояса в минутах, которое является разницей между GMT и местным время в минутах.