ฉันจะรับเวลาและวันที่ปัจจุบันในแอพ Android ได้อย่างไร
ฉันจะรับเวลาและวันที่ปัจจุบันในแอพ Android ได้อย่างไร
คำตอบ:
คุณสามารถใช้:
import java.util.Calendar
Date currentTime = Calendar.getInstance().getTime();
ปฏิทินมีค่าคงที่มากมายสำหรับทุกสิ่งที่คุณต้องการ
แก้ไข:
ตรวจสอบเอกสารประกอบคลาสปฏิทิน
Calendar.getInstance().getTime()
หรือCalendar.getInstance().getTimeInMillis()
จะใช้งานได้
คุณสามารถ ( แต่ไม่ควรดูด้านล่าง!) ใช้android.text.format.Time :
Time now = new Time();
now.setToNow();
จากการอ้างอิงเชื่อมโยงด้านบน:
คลาส Time จะเปลี่ยนได้เร็วขึ้นสำหรับคลาส java.util.Calendar และ java.util.GregorianCalendar อินสแตนซ์ของคลาสเวลาแสดงถึงช่วงเวลาที่ระบุด้วยความแม่นยำที่สอง
หมายเหตุ 1: เป็นเวลาหลายปีแล้วที่ฉันเขียนคำตอบนี้และเป็นเรื่องเกี่ยวกับคลาส Android ที่เฉพาะเจาะจงและเลิกเรียนแล้ว Google บอกว่าตอนนี้"[t] ชั้นเรียนของเขามีปัญหาหลายข้อและแนะนำให้ใช้GregorianCalendarแทน"
หมายเหตุ 2:แม้ว่าTime
ชั้นเรียนจะมีtoMillis(ignoreDaylightSavings)
วิธีการนี้เป็นเพียงความสะดวกในการส่งผ่านไปยังวิธีการที่คาดว่าเวลาเป็นมิลลิวินาที ค่าเวลาเพียงแม่นยำหนึ่งวินาที ; 000
ส่วนมิลลิวินาทีอยู่เสมอ ถ้าอยู่ในวงคุณ
Time time = new Time(); time.setToNow();
Log.d("TIME TEST", Long.toString(time.toMillis(false)));
... do something that takes more than one millisecond, but less than one second ...
ลำดับผลลัพธ์จะทำซ้ำค่าเดียวกันเช่น1410543204000
จนกระทั่งวินาทีถัดไปได้เริ่มขึ้นซึ่งเวลา1410543205000
จะเริ่มทำซ้ำ
SystemClock.uptimeMillis()
สำหรับช่วงเวลา เนื่องจากเป็นฟังก์ชั่นที่มีในตัวส่วนใหญ่จึงมีแรงจูงใจอย่างมากที่จะใช้งานได้กับทุกอุปกรณ์ ดูการสนทนาในSystemClock ... หากคุณต้องการเชื่อมโยงกับเวลาในแอป RESume ของแอปให้อ่านทั้งสองอย่างนี้และเวลา / setToNow / toMillis จำความแตกต่างระหว่างสิ่งเหล่านั้น
GregorianCalendar
ถูกแทนที่ปีที่ผ่านมาในชวาและในภายหลัง Android โดยjava.timeZonedDateTime
เรียนโดยเฉพาะ สำหรับก่อนหน้านี้นดรอยด์ให้ดูThreeTen-ย้ายกลับและThreeTenABPโครงการ
หากคุณต้องการได้รับวันที่และเวลาในรูปแบบเฉพาะคุณสามารถใช้สิ่งต่อไปนี้:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());
String currentDateandTime = sdf.format(new Date());
หรือ,
วันที่ :
String currentDate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());
เวลา:
String currentTime = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(new Date());
String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
sdf.setTimeZone(TimeZone.getDefault())
ตรงกลาง
สำหรับผู้ที่อาจชอบรูปแบบที่กำหนดเองคุณสามารถใช้:
DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());
โดยที่คุณสามารถมีรูปแบบ DateFormat เช่น:
"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
ที่จริงแล้วการตั้งค่าเขตเวลาปัจจุบันที่ปลอดภัยบนอุปกรณ์นั้นปลอดภัยกว่าTime.getCurrentTimezone()
หรือคุณจะได้รับเวลาปัจจุบันใน UTC
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
จากนั้นคุณสามารถรับฟิลด์วันที่ทั้งหมดที่คุณต้องการเช่น:
textViewDay.setText(today.monthDay + ""); // Day of the month (1-31)
textViewMonth.setText(today.month + ""); // Month (0-11)
textViewYear.setText(today.year + ""); // Year
textViewTime.setText(today.format("%k:%M:%S")); // Current time
ดูคลาสandroid.text.format.Timeสำหรับรายละเอียดทั้งหมด
UPDATE
ตามที่หลายคนกำลังชี้ให้เห็น Google บอกว่าคลาสนี้มีปัญหามากมายและไม่ควรใช้อีกต่อไป:
คลาสนี้มีปัญหามากมายและขอแนะนำให้ใช้ GregorianCalendar แทน
ปัญหาที่ทราบ:
ด้วยเหตุผลทางประวัติศาสตร์เมื่อทำการคำนวณเวลาการคำนวณทางคณิตศาสตร์ทั้งหมดจะเกิดขึ้นโดยใช้จำนวนเต็ม 32 บิต สิ่งนี้ จำกัด ช่วงเวลาที่เชื่อถือได้ซึ่งแสดงได้ตั้งแต่ปี 1902 ถึง 2037 ดูบทความวิกิพีเดียเกี่ยวกับปัญหาปี 2038 สำหรับรายละเอียด อย่าพึ่งพาพฤติกรรมนี้ มันอาจมีการเปลี่ยนแปลงในอนาคต การเรียก switchTimezone (String) ในวันที่ไม่สามารถอยู่ได้เช่นเวลากำแพงที่ถูกข้ามเนื่องจากการเปลี่ยน DST จะส่งผลให้วันที่ 2512 (เช่น -1 หรือ 1 วินาทีก่อน 1 มกราคม 2513 UTC) การจัดรูปแบบ / การแยกวิเคราะห์ส่วนใหญ่ถือว่าข้อความ ASCII และดังนั้นจึงไม่เหมาะสำหรับใช้กับสคริปต์ที่ไม่ใช่ ASCII
สำหรับวันที่และเวลาปัจจุบันให้ใช้:
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
ผลลัพธ์ใด:
Feb 27, 2012 5:41:23 PM
ลองด้วยวิธีนี้ทุกรูปแบบได้รับด้านล่างเพื่อรับรูปแบบวันที่และเวลา
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa");
String datetime = dateformat.format(c.getTime());
System.out.println(datetime);
Instant.now() // Current moment in UTC.
…หรือ…
ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) // In a particular time zone
คำตอบอื่น ๆ ในขณะที่ถูกต้องจะล้าสมัย คลาสวันเวลาเก่าได้รับการพิสูจน์แล้วว่าได้รับการออกแบบไม่ดีสับสนและมีปัญหา
คลาสเก่าเหล่านั้นถูกแทนที่ด้วยเฟรมเวิร์กjava.time
คลาสใหม่เหล่านี้ได้รับแรงบันดาลใจจากความสำเร็จอย่างสูงJoda เวลาโครงการที่กำหนดโดยJSR 310และขยายโดยThreeTen-พิเศษโครงการ
Instant
Instant
เป็นช่วงเวลาบนไทม์ไลน์ในส่วนUTCที่มีความละเอียดถึงนาโนวินาที
Instant instant = Instant.now(); // Current moment in UTC.
สมัครโซนเวลา ( ZoneId
) ZonedDateTime
เพื่อให้ได้ หากคุณเว้นเขตเวลาเอาไว้โซนเวลาเริ่มต้นปัจจุบันของ JVM ของคุณจะถูกนำไปใช้โดยปริยาย ดีกว่าที่จะระบุโซนเวลาที่ต้องการ / คาดหวังอย่างชัดเจน
ใช้ชื่อโซนเวลาที่เหมาะสมในรูปแบบของcontinent/region
เช่นAmerica/Montreal
, หรือEurope/Brussels
Asia/Kolkata
ห้ามใช้ตัวย่อ 3-4 ตัวอักษรเช่นEST
หรือIST
ตามที่เป็นมาตรฐานหรือไม่ซ้ำกัน
ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Or "Asia/Kolkata", "Europe/Paris", and so on.
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );
คุณสามารถสร้างString
เป็นข้อความแสดงค่าวันที่ได้อย่างง่ายดาย คุณสามารถใช้รูปแบบมาตรฐานรูปแบบที่คุณกำหนดเองหรือรูปแบบที่ถูกแปลโดยอัตโนมัติ
คุณสามารถเรียกtoString
วิธีการที่จะได้รับการจัดรูปแบบข้อความที่ใช้ร่วมกันและเหมาะสมISO 8601มาตรฐาน
String output = instant.toString();
2016-03-23T03: 09: 01.613Z
โปรดทราบว่าสำหรับZonedDateTime
การtoString
วิธีการขยายการรับรองมาตรฐาน ISO 8601 มาตรฐานโดยต่อท้ายชื่อของโซนเวลาในวงเล็บ ข้อมูลที่มีประโยชน์และสำคัญมาก แต่ไม่ได้มาตรฐาน
2016-03-22T20: 09: 01.613-08: 00 [อเมริกา / Los_Angeles]
หรือระบุรูปแบบการจัดรูปแบบเฉพาะของคุณเองด้วยDateTimeFormatter
คลาส
DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "dd/MM/yyyy hh:mm a" );
ระบุ a Locale
สำหรับภาษามนุษย์ (อังกฤษฝรั่งเศสฯลฯ ) เพื่อใช้ในการแปลชื่อของวัน / เดือนและในการกำหนดบรรทัดฐานทางวัฒนธรรมเช่นคำสั่งของปีและเดือนและวันที่ โปรดทราบว่าLocale
ไม่มีส่วนเกี่ยวข้องกับเขตเวลา
formatter = formatter.withLocale( Locale.US ); // Or Locale.CANADA_FRENCH or such.
String output = zdt.format( formatter );
ยังดีกว่าปล่อยให้ java.time ทำงานการแปลโดยอัตโนมัติ
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.MEDIUM );
String output = zdt.format( formatter.withLocale( Locale.US ) ); // Or Locale.CANADA_FRENCH and so on.
java.timeกรอบถูกสร้างขึ้นใน Java 8 และต่อมา ชั้นเรียนเหล่านี้แย่งลำบากเก่ามรดกเรียนวันที่เวลาเช่นjava.util.Date
, และCalendar
SimpleDateFormat
Joda เวลาโครงการขณะนี้อยู่ในโหมดการบำรุงรักษาให้คำแนะนำแก่การโยกย้ายไปยังjava.timeชั้นเรียน
ต้องการเรียนรู้เพิ่มเติมโปรดดูที่ออราเคิลกวดวิชา และค้นหา Stack Overflow สำหรับตัวอย่างและคำอธิบายมากมาย สเปกJSR 310
คุณสามารถแลกเปลี่ยนวัตถุjava.timeโดยตรงกับฐานข้อมูลของคุณ ใช้ไดรเวอร์ JDBC ที่สอดคล้องกับJDBC 4.2หรือใหม่กว่า ไม่จำเป็นต้องใช้สตริงไม่จำเป็นต้องมีjava.sql.*
คลาส
จะรับคลาส java.time ได้ที่ไหน?
Instant.now()
และZonedDateTime.now()
จำเป็นต้องใช้ API 26
เพื่อ ge เวลาปัจจุบันคุณสามารถใช้System.currentTimeMillis()
ซึ่งเป็นมาตรฐานใน Java จากนั้นคุณสามารถใช้มันเพื่อสร้างวันที่
Date currentDate = new Date(System.currentTimeMillis());
และตามที่ผู้อื่นกล่าวถึงเพื่อสร้างเวลา
Time currentTime = new Time();
currentTime.setToNow();
Cannot resolve constructor Date()
ใน Android, Android SDK ใช้ส่วนผสมของ Java 6 และ 7
Date currentDate = new Date(System.currentTimeMillis());
ถูกต้อง
new Date(System.currentTimeMillis())
ในไม่ถูกต้อง (ก) new Date()
มันจะซ้ำซ้อนเป็นที่แน่นอนเช่นเดียวกับ (b) java.util.Date
คลาสที่มีปัญหานั้นถูกแทนที่โดยjava.time.Instant
เป็นของ Java 8 และใหม่กว่า Back-รังเพลิง Java 6 และ 7 ในThreeTen-ย้ายกลับโครงการและก่อนหน้านี้ Android (<26) ในThreeTenABP
คุณสามารถใช้รหัส:
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());
เอาท์พุท:
2014-11-11 00:47:55
คุณยังได้รับการจัดรูปแบบตัวเลือกมากขึ้นบางอย่างสำหรับการSimpleDateFormat
จากที่นี่
java.util.Date
, java.util.Calendar
และjava.text.SimpleDateFormat
ตอนนี้มรดกแทนที่โดยjava.timeชั้นเรียนที่สร้างขึ้นใน Java 8 และต่อมา ดูการสอนโดยออราเคิล
ง่ายคุณสามารถแยกเวลาเพื่อรับค่าแยกกันสำหรับเวลาปัจจุบันดังต่อไปนี้:
Calendar cal = Calendar.getInstance();
int millisecond = cal.get(Calendar.MILLISECOND);
int second = cal.get(Calendar.SECOND);
int minute = cal.get(Calendar.MINUTE);
//12 hour format
int hour = cal.get(Calendar.HOUR);
//24 hour format
int hourofday = cal.get(Calendar.HOUR_OF_DAY);
กันไปสำหรับวันดังต่อไปนี้:
Calendar cal = Calendar.getInstance();
int dayofyear = cal.get(Calendar.DAY_OF_YEAR);
int year = cal.get(Calendar.YEAR);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
int dayofmonth = cal.get(Calendar.DAY_OF_MONTH);
มีหลายตัวเลือกเนื่องจาก Android ส่วนใหญ่เป็น Java แต่ถ้าคุณต้องการเขียนใน textView รหัสต่อไปนี้จะใช้เคล็ดลับ:
String currentDateTimeString = DateFormat.getDateInstance().format(new Date());
// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
Calendar
ชั้นจะเลิก GregorianCalendar
Date
SimpleDateFormat databaseDateTimeFormate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat databaseDateFormate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("dd.MM.yy");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE, MMM d, ''yy");
SimpleDateFormat sdf4 = new SimpleDateFormat("h:mm a");
SimpleDateFormat sdf5 = new SimpleDateFormat("h:mm");
SimpleDateFormat sdf6 = new SimpleDateFormat("H:mm:ss:SSS");
SimpleDateFormat sdf7 = new SimpleDateFormat("K:mm a,z");
SimpleDateFormat sdf8 = new SimpleDateFormat("yyyy.MMMMM.dd GGG hh:mm aaa");
String currentDateandTime = databaseDateTimeFormate.format(new Date()); //2009-06-30 08:29:36
String currentDateandTime = databaseDateFormate.format(new Date()); //2009-06-30
String currentDateandTime = sdf1.format(new Date()); //30.06.09
String currentDateandTime = sdf2.format(new Date()); //2009.06.30 AD at 08:29:36 PDT
String currentDateandTime = sdf3.format(new Date()); //Tue, Jun 30, '09
String currentDateandTime = sdf4.format(new Date()); //8:29 PM
String currentDateandTime = sdf5.format(new Date()); //8:29
String currentDateandTime = sdf6.format(new Date()); //8:28:36:249
String currentDateandTime = sdf7.format(new Date()); //8:29 AM,PDT
String currentDateandTime = sdf8.format(new Date()); //2009.June.30 AD 08:29 AM
รูปแบบรูปแบบวันที่
G Era designator (before christ, after christ)
y Year (e.g. 12 or 2012). Use either yy or yyyy.
M Month in year. Number of M's determine length of format (e.g. MM, MMM or MMMMM)
d Day in month. Number of d's determine length of format (e.g. d or dd)
h Hour of day, 1-12 (AM / PM) (normally hh)
H Hour of day, 0-23 (normally HH)
m Minute in hour, 0-59 (normally mm)
s Second in minute, 0-59 (normally ss)
S Millisecond in second, 0-999 (normally SSS)
E Day in week (e.g Monday, Tuesday etc.)
D Day in year (1-366)
F Day of week in month (e.g. 1st Thursday of December)
w Week in year (1-53)
W Week in month (0-5)
a AM / PM marker
k Hour in day (1-24, unlike HH's 0-23)
K Hour in day, AM / PM (0-11)
z Time Zone
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
textView.setText(""+mDay+"-"+mMonth+"-"+mYear);
นี่เป็นวิธีที่จะเป็นประโยชน์ในการรับวันที่และเวลา:
private String getDate(){
DateFormat dfDate = new SimpleDateFormat("yyyy/MM/dd");
String date=dfDate.format(Calendar.getInstance().getTime());
DateFormat dfTime = new SimpleDateFormat("HH:mm");
String time = dfTime.format(Calendar.getInstance().getTime());
return date + " " + time;
}
คุณสามารถเรียกวิธีนี้และรับค่าวันที่และเวลาปัจจุบัน:
2017/01//09 19:23
SimpleDateFormat
s & 2 Date
s ... คุณไม่สามารถใช้"yyyy/MM/dd HH:mm"
เป็นรูปแบบ & โทรปฏิทินหนึ่งครั้งได้หรือไม่
Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);
ตัวอย่างนี้จะให้คุณ 12:32
อย่าลืมนำเข้า android.text.format.Time;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println("time => " + dateFormat.format(cal.getTime()));
String time_str = dateFormat.format(cal.getTime());
String[] s = time_str.split(" ");
for (int i = 0; i < s.length; i++) {
System.out.println("date => " + s[i]);
}
int year_sys = Integer.parseInt(s[0].split("/")[0]);
int month_sys = Integer.parseInt(s[0].split("/")[1]);
int day_sys = Integer.parseInt(s[0].split("/")[2]);
int hour_sys = Integer.parseInt(s[1].split(":")[0]);
int min_sys = Integer.parseInt(s[1].split(":")[1]);
System.out.println("year_sys => " + year_sys);
System.out.println("month_sys => " + month_sys);
System.out.println("day_sys => " + day_sys);
System.out.println("hour_sys => " + hour_sys);
System.out.println("min_sys => " + min_sys);
สำหรับวันที่และเวลาปัจจุบันที่มีรูปแบบให้ใช้
ในภาษาจาวา
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());
Log.d("Date","DATE : " + strDate)
ในคอตลิน
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy. HH:mm:ss")
var myDate: String = current.format(formatter)
Log.d("Date","DATE : " + myDate)
} else {
var date = Date()
val formatter = SimpleDateFormat("MMM dd yyyy HH:mma")
val myDate: String = formatter.format(date)
Log.d("Date","DATE : " + myDate)
}
รูปแบบวันที่ Formater
"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
SimpleDateFormat
ชั้นเรียนที่ล้าสมัยและลำบาก แม้กระทั่งก่อนที่ Oreo คุณไม่จำเป็นต้องทำคุณอาจใช้ThreeTenABP , backport ของ java.time, วันที่และเวลา Java API สมัยใหม่
คุณยังสามารถใช้ android.os.SystemClock ตัวอย่างเช่น SystemClock.elapsedRealtime () จะช่วยให้คุณอ่านเวลาได้แม่นยำยิ่งขึ้นเมื่อโทรศัพท์หลับ
หากคุณต้องการวันที่ปัจจุบัน:
Calendar cc = Calendar.getInstance();
int year = cc.get(Calendar.YEAR);
int month = cc.get(Calendar.MONTH);
int mDay = cc.get(Calendar.DAY_OF_MONTH);
System.out.println("Date", year + ":" + month + ":" + mDay);
หากคุณต้องการเวลาปัจจุบัน:
int mHour = cc.get(Calendar.HOUR_OF_DAY);
int mMinute = cc.get(Calendar.MINUTE);
System.out.println("time_format" + String.format("%02d:%02d", mHour , mMinute));
สำหรับรูปแบบเวลาและวันที่ที่กำหนดเอง:
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ",Locale.ENGLISH);
String cDateTime=dateFormat.format(new Date());
ผลลัพธ์เป็นรูปแบบด้านล่าง: 2015-06-18T10: 15: 56-05: 00
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
Time now = new Time();
now.setToNow();
ลองใช้งานได้ผลสำหรับฉันเช่นกัน
คุณสามารถรับวันที่โดยใช้:
Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date = t.format("%Y/%m/%d");
สิ่งนี้จะให้ผลลัพธ์ที่ดีแก่คุณดังตัวอย่าง: "2014/02/09"
Time t = new Time();
จะใช้เขตเวลาเริ่มต้น ในประสบการณ์ของฉันเริ่มต้น == ปัจจุบัน
ฉันมีปัญหากับคำตอบบางส่วนจาก API ดังนั้นฉันจึงรวมรหัสนี้ไว้ฉันหวังว่าจะให้บริการพวกเขา:
Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date1 = t.format("%Y/%m/%d");
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
Locale.ENGLISH);
String var = dateFormat.format(date);
String horafecha = var+ " - " + date1;
tvTime.setText(horafecha);
เอาท์พุท: 03:25 PM - 2017/10/03
คุณสามารถใช้รหัสต่อไปนี้:
DateFormat df = new SimpleDateFormat("HH:mm"); // Format time
String time = df.format(Calendar.getInstance().getTime());
DateFormat df1 = new SimpleDateFormat("yyyy/MM/dd"); // Format date
String date = df1.format(Calendar.getInstance().getTime());
ลองสิ่งนี้
String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date()).toString());
วิธีด้านล่างนี้จะส่งกลับวันที่และเวลาปัจจุบันใน String ใช้เขตเวลาที่แตกต่างกันตามเขตเวลาจริงของคุณฉันใช้ GMT
public static String GetToday(){
Date presentTime_Date = Calendar.getInstance().getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
return dateFormat.format(presentTime_Date);
}
คุณควรใช้คลาสปฏิทินตาม API ใหม่ คลาสวันที่เลิกใช้แล้วในขณะนี้
Calendar cal = Calendar.getInstance();
String date = ""+cal.get(Calendar.DATE)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.YEAR);
String time = ""+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE);
ลองใช้รหัสด้านล่าง:
Date date = new Date();
SimpleDateFormat dateFormatWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());
String currentDate = dateFormatWithZone.format(date);