Timezone adalah zona waktu masing-masing daerah berdasarkan garis bujur yang berlaku secara internasional. Perbedaan zona waktu disebabkan karena bumi berbentuk bulat dan berotasi selama 24 jam dalam sehari. Contoh sederhananya adalah di Indonesia terdapat zona waktu, yakni GMT+7 (WIB), GMT+8 (WITA), dan GMT+9 (WIT). Masing-masing zona waktu terpaut satu jam satu sama lain.
Nah, bagaimana cara mengambil data timezone ini menggunakan Java (Android Studio). Caranya cukup sederhana, yakni dengan memaanfaatkan library java.util.TimeZone. Setelah kita mendefinisikan library ini kita dapat mengambil data timezone sbb:
- getDisplayName, hasilnya/outputnya adalah nama zona waktunya (misal ‘WIB’, WITA, dst)
- getOffset, otputnya berupa offset timezone (misal jika WIB adalah zona GMT+7, maka dengan memanggil function ini, outputnya adalah ‘7.0’)
- dan masih banyak function lain yang bisa Anda gali di https://developer.android.com/reference/java/util/TimeZone
Berhubung kebutuhan saya adalah untuk mengambil nilai offset timezone saja, berikut ini saya contohkan bagaimana caranya menggunakan Java for Android Studio. Potongan script ini saya ambilkan dari event onClick listener milik komponen Button
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TimeZone tz = TimeZone.getDefault(); Date now = new Date(); double offsettz = tz.getOffset(now.getTime()) / 3600000.0; String stimezone = Double.toString(offsettz); TextView tv = (TextView)findViewById(R.id.textView1); tv.setText(stimezone); } });
Dengan script di atas, maka setiap kali kita klik button, maka textview akan menampilkan offset timezone hp Android kita. Untuk selanjutnya tinggal Anda manfaatkan data offset tadi untuk kebutuhan Anda.
Untuk full source code nya adalah sebagai berikut: (file MainActivity.java)
package com.saptaji.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.time.ZonedDateTime; import java.util.Date; import java.util.TimeZone; public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast toast = Toast.makeText(v.getContext(), "Berhasil di click", Toast.LENGTH_SHORT); toast.show(); TimeZone tz = TimeZone.getDefault(); Date now = new Date(); double offsettz = tz.getOffset(now.getTime()) / 3600000.0; String stimezone = Double.toString(offsettz); TextView tv = (TextView)findViewById(R.id.textView1); tv.setText(stimezone); } }); } }
Untuk layout tampilannya (file activity_main.xml) adalah sebagai berikut:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:text="Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="34dp" android:id="@+id/button" /> </androidx.constraintlayout.widget.ConstraintLayout>
Jika kita running script sederhana di atas, hasilnya adalah sebagai berikut:
Demikian sedikit tutorial sederhana ini, barangkali ada yang sedang membutuhkan. Terima kasih sudah berkunjung ke sini. Jika ada pertanyaan silahkan isi komentar di bawah
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com