转换时间值格式为“HH:MM AM / PM”采用Android(Convert time valu

2019-08-31 11:34发布

我从数据库中获取日期值,如“2013年2月27日6时06分30秒”使用的StringTokenizer我会时间分别如下图所示

String startTime = "2013-02-27 06:06:30";

StringTokenizer token = new StringTokenizer(startTime);
String date1 = token.nextToken();  
String time1 = token.nextToken(); 

在时间1我得到的结果6时06分30秒,

我可以将其重新保存在String类型如下的另一个变量?

String displayValue = "06:06 AM";

如果时间1变量的值

String time = 16:00:00;

然后它应转换为:

String displayValue = "04:00 PM";

Answer 1:

试试这个..

Date dt = new Date(date1);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String time1 = sdf.format(dt);


Answer 2:

我回答只是在做这样。

startTime = "2013-02-27 21:06:30";
StringTokenizer tk = new StringTokenizer(startTime);
String date = tk.nextToken();  
String time = tk.nextToken();

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");
Date dt;
try {    
    dt = sdf.parse(time);
    System.out.println("Time Display: " + sdfs.format(dt)); // <-- I got result here
} catch (ParseException e) {
    e.printStackTrace();
}


Answer 3:

首先,你不需要使用StringTokenizer来得到字符串的时间。 只是通过你的startTime是这样的:

// Get date from string
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormatter.parse(startTime);

// Get time from date
SimpleDateFormat timeFormatter = new SimpleDateFormat("h:mm a");
String displayValue = timeFormatter.format(date);

// Done!


Answer 4:

试试这个

 String time = "22:35";

try {
     SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
     Date dateObj = sdf.parse(time);
    System.out.println(dateObj);
    System.out.println(new SimpleDateFormat("K:mm").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}

追踪此链接http://developer.android.com/reference/java/text/SimpleDateFormat.html



Answer 5:

我建议使用日期格式,喜欢的SimpleDateFormat

try {
    String timeLong = "2013-02-27 06:06:30";
    String timeShort = "16:06 AM";
    SimpleDateFormat formatLong = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
    SimpleDateFormat formatShort = new SimpleDateFormat("hh:mm aa", Locale.US);
    Log.v("out", formatShort.format(formatLong.parse(timeLong)));
    Log.v("out", formatShort.format(formatShort.parse(timeShort)));
} catch (ParseException e) {
    e.printStackTrace();
}

今天我累了,我觉得我在这个代码,所以我可能会在以后修改它失去了一些东西,但它的工作,它不(直接)调用已弃用的Date类。



Answer 6:

1假设你需要显示当前时间,格式为下午9点30。 这将是一个相当简单的方法。 即使你不需要它的当前时间,你应该能够使用下面的日期格式为您的要求。

Calendar cal = Calendar.getInstance();
DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
String formattedTime = outputFormat.format(cal.getTime());

2 注:下面的格式化可用于显示24小时制在同一时间(21:30)。

new SimpleDateFormat("HH:mm");

[3]然而,如果要构造相同的格式,在我的第一个点,它是最好的,因为Java的鼓励使用的StringTokenizer的使用下面的代码。 你可以在这里读到它, http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html

希望这会帮助你,谢谢!

    String startTime = "2013-02-27 21:06:30";
    String[] parts = startTime.split(" ");

    DateFormat outputFormat = new SimpleDateFormat("KK:mm a");
    SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm:ss");


    try {
        Date dt = parseFormat.parse(parts[1]);
        System.out.println(outputFormat.format(dt));
    } catch(ParseException exc) {
        exc.printStackTrace();
    }


Answer 7:

Date dt = new Date(date1);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String time1 = sdf.format(dt);

输出上午02时

 Date dt = new Date(date1);
 SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US);
 String time1 = sdf.format(dt);

输出上午02时



Answer 8:

在Android上也有日期格式



Answer 9:

选择的答案有错误的显示时间的问题。 如果你的时间是12:30:00它表明上午12:30改为12:30 PM。 下面的代码将有助于克服这个问题。

SimpleDateFormat sdf = new SimpleDateFormat("KK:mm:ss");
SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");

    Date dt1 = null;

    try {
        dt1 = sdf.parse("12:00:00");
        Log.i("Time in Am Pm  ", sdfs.format(dt1));

    } catch (ParseException e) {
        e.printStackTrace();
    }


Answer 10:

只需使用下面的模式,你会得到您预期的结果:

    try {
        String time = "06:06:30";
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
        Date dt = sdf.parse(time);

        SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a");
        String formatedTime = sdfs.format(dt);

        Log.v("parseTime", formatedTime);

    } catch (ParseException e) {
        e.printStackTrace();
    }

编码愉快:)



文章来源: Convert time value to format “hh:mm Am/Pm” using Android