Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中使用DateFormat.getDateTimeInstance()仅显示当前时间_Java_Android_Date Format_Date Formatting - Fatal编程技术网

Java 如何在android中使用DateFormat.getDateTimeInstance()仅显示当前时间

Java 如何在android中使用DateFormat.getDateTimeInstance()仅显示当前时间,java,android,date-format,date-formatting,Java,Android,Date Format,Date Formatting,我是android新手。在android中,我只想在文本视图中以hh:mm am/pm(例如:3:02 pm)格式显示当前时间,我使用以下代码 String currentDateTimeString=DateFormat.getDateTimeInstance().format(新日期()); tv.setText(currentDateTimeString); 它给出了当前的日期、月份、年份和时间。但我只需要从中获取当前时间。有没有办法只显示时间?有人能帮我从上面的代码中获取没有日期的时间

我是android新手。在android中,我只想在文本视图中以hh:mm am/pm(例如:3:02 pm)格式显示当前时间,我使用以下代码

String currentDateTimeString=DateFormat.getDateTimeInstance().format(新日期());
tv.setText(currentDateTimeString);

它给出了当前的日期、月份、年份和时间。但我只需要从中获取当前时间。有没有办法只显示时间?有人能帮我从上面的代码中获取没有日期的时间吗。[使用DateFormat.getDateTimeInstance()]

startTime=“”+System.currentTimeMillis();
StringTokenizer tk=新的StringTokenizer(startTime.trim());
字符串date=tk.nextToken();
字符串时间=tk.nextToken();
SimpleDataFormat sdf=新的SimpleDataFormat(“hh:mm:ss”);
SimpleDataFormat sdfs=新SimpleDataFormat(“hh:mm a”);
日期dt;
试试{
dt=sdf.parse(时间);
System.out.println(“时间显示:”+sdfs.format(dt));//尝试以下代码

     Date d=new Date();
     SimpleDateFormat sdf=new SimpleDateFormat("hh:mm a");
     String currentDateTimeString = sdf.format(d);
     tv.setText(currentDateTimeString);
试试这个:

<DigitalClock
        android:id="@+id/digitalClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DigitalClock" />

这是android的基本控制

System.out.println(new SimpleDateFormat("HH:mm:SS").format(new Date()));
Android时间选择器组件遵循链接

更多信息

它给出了当前的日期、月份、年份和时间,但是 我只需要从中获取当前时间

如果要执行此操作并尊重用户的偏好(例如12小时与24小时),请继续使用
日期格式
,只需这样:

DateFormat.getTimeInstance(DateFormat.SHORT).format(new Date());
它给出了当前的日期、月份、年份和时间。但我只需要 从这个开始的当前时间

java.util.Date
对象不是像的实时日期对象;相反,它表示从称为“历元”的标准基准时间开始的毫秒数,即
1970年1月1日00:00:00 GMT
(或UTC)。当您打印
java.util.Date
的对象时,其
toString
方法返回JVM时区中的日期时间,该值根据该毫秒值计算。如果您需要在不同的时区中打印日期时间,则需要将时区设置为
SimpleDataFormat
,并从中获取格式化字符串,例如。

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ENGLISH);
sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println(sdf.format(date));
为了获得准确的时间,您只需将(a)
yyyy-MM-dd'HH:MM:ss.SSSXXX
替换为
HH:MM a
和(b)
America/New_-York
替换为适用的时区

但是,
java.util
Date-Time API及其格式化API,
SimpleDataFormat
已过时且容易出错。建议完全停止使用它们,并切换到*

使用
java.time
的解决方案,现代API: 输出:

11:59:07.443868
11:59 AM
了解更多关于
java.time
、来自的*


*无论出于何种原因,如果您必须坚持使用Java 6或Java 7,您可以使用哪个backport将大部分Java.time功能移植到Java 6和7。如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查并确认。

您想在文本视图中显示当前时间还是编辑文本?是的,这就是我需要的。谢谢。这是24小时时间还是12小时?12小时…这就是为什么我在am/PM中使用“a”的原因抱歉,我错误地否决了这个答案。实际上,这是唯一正确的答案。@AlexeyVMP谢谢,我进行了编辑,所以您现在应该可以删除否决或否决。这应该是正确的是公认的答案!谢谢分享。
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        // Replace JVM's timezone i.e. ZoneId.systemDefault() with the applicable
        // timezone e.g. ZoneId.of("Europe/London")
        LocalTime time = LocalTime.now(ZoneId.systemDefault());

        // Print the default format i.e. the value of time.toString()
        System.out.println(time);

        // Custom format
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
        String formattedTime = dtf.format(time); // Alternatively, time.format(dtf)
        System.out.println(formattedTime);
    }
}
11:59:07.443868
11:59 AM