Java:以“hh:MM:ss a”格式获取时间[重复]

Posted

技术标签:

【中文标题】Java:以“hh:MM:ss a”格式获取时间[重复]【英文标题】:Java: Get time in "hh:MM:ss a" format [duplicate] 【发布时间】:2019-11-15 00:00:21 【问题描述】:

我正在构建一个 android 应用程序,我在我的项目中使用 Date 类来获取当前日期。我用simpledateformatter 格式化了日期并将其显示为dd-mm-yyyy(即日月年)。

现在我还想以hh:MM:ss a 格式获取时间(时分秒 AM/PM)

当我使用日期的实例时,我看到它也显示日期和时间(默认格式)。所以我试图从日期的实例中获取时间。(假设 d 是日期类实例)。我还找到了日期类的getTime() 方法并执行了d.getTime(),但它返回给我很长的时间(这是从过去到当前时间的某个固定时间的持续时间)。现在我想要所需格式的时间,但这个 getTime() 方法给了我很长时间。

您能否提供一些方法来处理这个长值以从中获得所需的时间格式。例如,d.getTime() 给我返回一些值(比如 11233),我想要这样的格式(11:33:22)。

【问题讨论】:

粘贴一些代码 如果您开始使用 Date,最好使用 JSR-310 backport for Android 而不是 Date。 不要使用DateSimpleDateFormat,因为它们陈旧且设计不佳。使用 java.time,现代 Java 日期和时间 API。如果还没有达到 API 级别 26,那么通过 @ישואוהבאותך 提到的反向端口。 【参考方案1】:

你可以做到的

private final String DATE_FORMAT = "dd.MM.yyyy HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
Date got = sdf.parse(date);

它会向您返回带有时间的日期

【讨论】:

但是我想从中提取时间而不是日期,那我应该这样做吗? 虽然我可以把它变成字符串并且可以从中提取时间。但是,像这样提取它会是一个好的决定吗? @ArjunSharma 你需要Time 还是String?或者您想获得哪种类型的时间? 对不起,我有点糊涂了!我想先知道一件事,我有一个显示时间的按钮。当我按下该按钮时,它会显示时间选择器对话框并显示先前设置的时间。现在,如果某些更改时间,我想将其存储并显示在时间按钮上。我应该使用哪种类型的时间?【参考方案2】:

使用此 sn-p 获取 datetime 两者。

public String currentDateTime() 
    Calendar c = Calendar.getInstance();
    SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa");  //it will give you the date in the formate that is given in the image
    String datetime = dateformat.format(c.getTime()); // it will give you the date
    return datetime;

注意:请看图片。

【讨论】:

如果我只需要时间,那么我可以将其设为字符串,然后将时间作为子字符串提取出来,对吧?【参考方案3】:

Date().getTime() 为您提供时间戳

将格式更改为您的要求,例如mm:hh:ss a

科特林

fun getDateTime():String 
    val inputFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.getDefault())
    val date = Date()
    return inputFormat.format(date.time)

JAVA

private String getDateTime()
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.getDefault());
        return format.format(new Date().getTime());
    

【讨论】:

以上是关于Java:以“hh:MM:ss a”格式获取时间[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android java以24小时格式获取当前时间

如何在Java中以字符串格式获取当前时间戳? “yyyy.MM.dd.HH.mm.ss”

使用 BigQuery REST 或 Java API 运行查询以获取 JSON 输出格式

(Java / Android) 计算两个日期之间的天数并以特定格式呈现结果

如何以文本或字符串格式而不是 HTML 格式获取电子邮件的正文

java中Date与DateFormat的格式输出