获取Android上的当前时间和日期

时间:2011-03-20 16:12:26

标签: android date time

如何在Android应用中获取当前时间和日期?

41 个答案:

答案 0 :(得分:1161)

您可以使用:

import java.util.Calendar

Date currentTime = Calendar.getInstance().getTime();

日历中有很多常量可供您使用。

编辑:
查看Calendar class documentation

答案 1 :(得分:481)

你可以(但不再 - 见下文!)使用android.text.format.Time

Time now = new Time();
now.setToNow();

从上面链接的参考文献:

  

Time类是一个更快的替代品   对于java.util.Calendar和   java.util.GregorianCalendar类。   Time类的一个实例   表示指定的时刻   具有第二精度。


注1: 我写这个答案已经好几年了, 它是关于一个旧的,特定于Android的,现在已弃用的类。 谷歌现在says那个 “[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将开始重复。

答案 2 :(得分:315)

如果您想以特定模式获取日期和时间,可以使用以下内容:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());

答案 3 :(得分:205)

对于那些可能更喜欢自定义格式的用户,您可以使用:

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

答案 4 :(得分:125)

实际上,使用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课程。

<强>更新

正如许多人指出的那样,谷歌表示这个课程有很多问题,不应该再使用了:

  

这个课有很多问题,建议这样做   改为使用GregorianCalendar。

     

已知问题:

     

执行时间计算时的历史原因   算术当前使用32位整数进行。这限制了   可靠的时间范围可以追溯到1902年至2037年。见   关于2038年问题的维基百科文章的详细信息。不要依赖   这种行为;它可能会在未来发生变化。调用   switchTimezone(String)在不存在的日期,例如墙   由于DST转换而跳过的时间将导致日期   1969年(即1970年1月1日UTC之前的-1或1秒)。大部分   格式化/解析假定ASCII文本,因此不适合   用于非ASCII脚本。

答案 5 :(得分:76)

对于当前日期和时间,请使用:

String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());

哪个输出:

Feb 27, 2012 5:41:23 PM

答案 6 :(得分:56)

尝试这种方式下面给出了所有格式以获取日期和时间格式。

    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);

first

second third

答案 7 :(得分:48)

要了解当前时间,您可以使用Java中的标准System.currentTimeMillis()。然后你可以用它来创建一个日期

Date currentDate = new Date(System.currentTimeMillis());

正如其他人所说,创造时间

Time currentTime = new Time();
currentTime.setToNow();

答案 8 :(得分:35)

您可以使用以下代码:

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

您还可以从here获得SimpleDateFormat的更多格式选项。

答案 9 :(得分:32)

TL;博士

Instant.now()  // Current moment in UTC.

...或...

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // In a particular time zone

详细

其他答案,虽然正确,但已过时。旧的日期时间类已被证明设计糟糕,令人困惑,并且很麻烦。

java.time

这些旧类已被java.time框架取代。

这些新课程受到非常成功的Joda-Time项目的启发,该项目由JSR 310定义,并由ThreeTen-Extra项目进行扩展。

请参阅Oracle Tutorial

Instant

InstantUTC中时间轴上的一个时刻,分辨率最高为nanoseconds

 Instant instant = Instant.now(); // Current moment in UTC.

时区

应用时区(ZoneId)以获得ZonedDateTime。如果省略时区,则会隐式应用JVM的当前默认时区。最好明确指定期望/预期的时区。

continent/region格式使用proper time zone names,例如America/MontrealEurope/BrusselsAsia/Kolkata。切勿使用ESTIST等3-4个字母的缩写,因为它们既不是标准也不是唯一。

ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Or "Asia/Kolkata", "Europe/Paris", and so on.
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );

生成字符串

您可以轻松生成String作为日期时间值的文本表示。您可以使用标准格式,自己的自定义格式或自动本地化格式。

ISO 8601

您可以调用toString方法,使用通用且合理的ISO 8601标准格式化文本。

String output = instant.toString();
  

2016-03-23T03:09:01.613Z

请注意,对于ZonedDateTimetoString方法通过在方括号中附加时区名称来扩展ISO 8601标准。非常有用和重要的信息,但不是标准的。

  

2016-03-22T20:09:01.613-08:00 [美国/洛杉矶]

自定义格式

或者使用DateTimeFormatter类指定您自己的特定格式模式。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "dd/MM/yyyy hh:mm a" );

为人类语言(英语,Locale等)指定French,用于翻译日/月的名称,以及定义文化规范,例如年和月的顺序和日期。请注意,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.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和&amp; SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*类。

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore

答案 10 :(得分:32)

很简单,您可以剖析时间以获得当前时间的单独值,如下所示:

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);

答案 11 :(得分:24)

有几个选项,因为Android主要是Java,但是如果你想在textView中编写它,下面的代码可以解决这个问题:

String currentDateTimeString = DateFormat.getDateInstance().format(new Date());

// textView is the TextView view that should display it
textView.setText(currentDateTimeString);

答案 12 :(得分:22)

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

答案 13 :(得分:16)

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);

答案 14 :(得分:13)

这是一种有助于获取日期和时间的方法:

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

答案 15 :(得分:12)

Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);

例如,这将给你12:32。

请记住导入android.text.format.Time;

答案 16 :(得分:12)

    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);

答案 17 :(得分:11)

您也可以使用android.os.SystemClock。 例如,当手机处于睡眠状态时,SystemClock.elapsedRealtime()将为您提供更准确的时间读数。

答案 18 :(得分:9)

如果您需要当前日期,

defmodule TestStruct do
  defstruct field_one: nil,
            field_two: nil,
            field_three: nil,
            field_four: nil
  use ExConstructor
end

TestStruct.new(%{"field_one" => "a", "fieldTwo" => "b", :field_three => "c", :FieldFour => "d"})
# => %TestStruct{field_one: "a", field_two: "b", field_three: "c", field_four: "d"}

如果您需要当前时间,

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);

答案 19 :(得分:9)

对于自定义的时间和日期格式:

    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

答案 20 :(得分:8)

Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();

答案 21 :(得分:8)

您可以使用以下方式获取日期:

Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date = t.format("%Y/%m/%d");

这会给你一个很好的形式的结果,如在这个例子中:“2014/02/09”。

答案 22 :(得分:8)

Time now = new Time();
now.setToNow();

试试这个也适合我。

答案 23 :(得分:7)

您只需使用以下代码:

 DateFormat df = new SimpleDateFormat("HH:mm"); //format time
 String time = df.format(Calendar.getInstance().getTime());

 DateFormat df1=new SimpleDateFormat("yyyy/MM/dd");//foramt date
 String date=df1.format(Calendar.getInstance().getTime());

答案 24 :(得分:6)

我的API遇到了一些问题,所以我融合了这些代码,希望能为他们服务:

.*Copy\ \(2\).*

输出:        03:25 PM - 2017/10/03

答案 25 :(得分:5)

以下方法将以字符串形式返回当前日期和时间,根据您的实际时区使用不同的时区。我使用过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);
}

答案 26 :(得分:5)

使用格式的当前日期和时间,使用

在Java中

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)
}

日期格式化程序模式

"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

答案 27 :(得分:4)

试试这个

String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date()).toString());

答案 28 :(得分:4)

您应该根据新API使用Calendar类。现在不推荐使用日期类。

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);

答案 29 :(得分:3)

尝试使用此代码显示当前日期和时间

 Date date = new Date(System.currentTimeMillis());
 SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
                         Locale.ENGLISH);
 String var = dateFormat.format(date));

答案 30 :(得分:3)

android中的当前时间和日期,格式为

Calendar c = Calendar.getInstance();
System.out.println("Current dateTime => " + c.getTime());
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss a");
String formattedDate = df.format(c.getTime());
System.out.println("Format dateTime => " + formattedDate);

输出

I/System.out: Current dateTime => Wed Feb 26 02:58:17 GMT+05:30 2020 
I/System.out: Format dateTime => 26-02-2020 02:58:17 AM

答案 31 :(得分:1)

尝试使用以下代码:

 Date date = new Date();
 SimpleDateFormat dateFormatWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());  
 String currentDate = dateFormatWithZone.format(date);

答案 32 :(得分:1)

后缀为“ AM”或“ PM”的12小时制:-

DateFormat df = new SimpleDateFormat("KK:mm:ss a, dd/MM/yyyy",Locale.getDefault());
        String currentDateAndTime = df.format(new Date());

后缀为“ AM”或“ PM”的24小时制:-

 DateFormat df = new SimpleDateFormat("HH:mm:ss a, dd/MM/yyyy",Locale.getDefault());
            String currentDateAndTime = df.format(new Date());

要删除后缀,只需删除以时间格式写的“ a”

答案 33 :(得分:1)

这里有一些获取时间和日期的方法

public static void getCurrentTimeUsingDate() {
    Date date = new Date();
    String strDateFormat = "hh:mm:ss a";
    DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
    String formattedDate= dateFormat.format(date);       
    Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}

使用日历的时间

public static void getCurrentTimeUsingCalendar() {
        Calendar cal = Calendar.getInstance();
        Date date=cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String formattedDate=dateFormat.format(date);
        Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}

本地时间和日期

public static void getCurrentTime(){
     System.out.println("-----Current time of your time zone-----");
     LocalTime time = LocalTime.now();
    Toast.makeText(this, time, Toast.LENGTH_SHORT).show();
 }

分区时间

public static void getCurrentTimeWithTimeZone(){
Toast.makeText(this, "Current time of a different time zone using LocalTime", Toast.LENGTH_SHORT).show();

    ZoneId zoneId = ZoneId.of("America/Los_Angeles");
    LocalTime localTime=LocalTime.now(zoneId);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
    String formattedTime=localTime.format(formatter);

Toast.makeText(this,formattedTime,Toast.LENGTH_SHORT).show();

}

轻松获取当前时间和日期的方法

import java.util.Calendar

Date currentTime = Calendar.getInstance().getTime();

答案 34 :(得分:1)

您可以从日历中分别获取时间和日期

// You can pass time zone and Local to getInstance() as parameter

Calendar calendar = Calendar.getInstance(); 

int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
int currentMinute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int date = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);

答案 35 :(得分:0)

You can get Current date and time using this code: - 
     
val current_data_time= SimpleDateFormat("MMMMddyyyyHHmm", Locale.getDefault())
val currentDateandTime: String = current_data_time.format(Date())

->If You use MMMM: - Then month name show e.g. March
->If you use MM : - Then number show e.g 3
->dd for day and yyyy for Year 
->if you want last two digits then yy.
    
If You Change Month and Year first and last then need to change MMMM and dd and yyyy left and right e.g 12/3/2021 12:12 dd/MM/YYYY HH:mm

答案 36 :(得分:0)

String DataString=DateFormat.getDateInstance(DateFormat.SHORT).format(Calendar.getInstance().getTime());

以单位的本地化格式获取短日期格式化字符串。

当OS / Java提供正确的日期和时间本地化时,我无法理解为什么这么多答案都是硬编码的日期和时间格式?难道总是使用单元格式而不是程序员吗?

它还以本地化格式提供日期读取:

    DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
    Date date=null;
    try {
        date = format.parse(DateString);
    }
    catch(ParseException e) {
    }

然后由用户设置格式来显示日期和时间而不是你?无论语言如何,不同国家/地区的语言都有不同的格式。

答案 37 :(得分:0)

您可以通过此功能获取当地时间和格林尼治标准时间(GMT)

public String getCurrentDate() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd hh:mm a zzz");
    Date date = new Date();
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+6:00"));
    return sdf.format(date);
}

答案 38 :(得分:0)

科特林

这里有多种获取Kotlin当前日期时间的方法。

fun main(args: Array<String>) {
    println(System.currentTimeMillis()) // current millisecond

    val date = Calendar.getInstance().time // current date object
    val date1 = Date(System.currentTimeMillis())

    println(date.toString())
    println(date1.toString())

    val now = Time(System.currentTimeMillis()) // current time object
    println(now.toString())

    val sdf = SimpleDateFormat("yyyy:MM:dd h:mm a", Locale.getDefault())
    println(sdf.format(Date())) // format current date

    println(DateFormat.getDateTimeInstance().format(System.currentTimeMillis())) // using getDateTimeInstance()

    println(LocalDateTime.now().toString()) // java 8

    println(ZonedDateTime.now().toString()) // java 8
}

答案 39 :(得分:0)

    long totalSeconds = currentTimeMillis / 1000;
    int currentSecond = (int)totalSeconds % 60;

    long totalMinutes = totalSeconds / 60;
    int currentMinute = (int)totalMinutes % 60;

    long totalHours = totalMinutes / 60;
    int currentHour = (int)totalHours % 12;

    TextView tvTime = findViewById(R.id.tvTime);
    tvTime.setText((currentHour + OR - TIME YOU ARE FROM GMT) + ":" + currentMinute + ":" + currentSecond);

答案 40 :(得分:0)

com.google.gson.internal.bind.util包中有一个ISO8601Utils utils类,因此如果您在应用中使用GSON,则可以使用此类。

它支持millis和timezones,因此它是一个非常好的选择,开箱即用。