Java 如何将“反向时间”转换为“反向时间”;年月日HH:MM:ss a“;在android中 private静态长converTimeStringINToMillis1(字符串时间){ 长毫秒=0; 试一试{ SimpleDataFormat sdf=新的SimpleDataFormat(“MM/dd/yyyy HH:MM:ss a”); sdf.setTimeZone(TimeZone.getTimeZone(“UTC”)); // 25/06/2014 8:41:26 日期; 日期=sdf.parse(时间); 毫秒=date.getTime(); }捕获(解析异常){ 毫秒=0; e、 printStackTrace(); } 返回毫秒; } 公共静态字符串setLastSeenTime1(字符串时间){ 长毫秒=Math.abs(System.currentTimeMillis()-converTimeStringINToMillis(time)); 字符串lastSeen=“”; 整数秒=(整数)毫秒/1000; 如果(秒60和秒3600和秒数86400和秒数172800和秒数2592000) lastSeen=String.valueOf((int)(秒/(30*24*3600))+“月前”; 返回上次看到的; }

Java 如何将“反向时间”转换为“反向时间”;年月日HH:MM:ss a“;在android中 private静态长converTimeStringINToMillis1(字符串时间){ 长毫秒=0; 试一试{ SimpleDataFormat sdf=新的SimpleDataFormat(“MM/dd/yyyy HH:MM:ss a”); sdf.setTimeZone(TimeZone.getTimeZone(“UTC”)); // 25/06/2014 8:41:26 日期; 日期=sdf.parse(时间); 毫秒=date.getTime(); }捕获(解析异常){ 毫秒=0; e、 printStackTrace(); } 返回毫秒; } 公共静态字符串setLastSeenTime1(字符串时间){ 长毫秒=Math.abs(System.currentTimeMillis()-converTimeStringINToMillis(time)); 字符串lastSeen=“”; 整数秒=(整数)毫秒/1000; 如果(秒60和秒3600和秒数86400和秒数172800和秒数2592000) lastSeen=String.valueOf((int)(秒/(30*24*3600))+“月前”; 返回上次看到的; },java,android,Java,Android,这是我应用代码的反向时间时,时间不是 包括am/pm它工作正常当我添加am/pm它不工作请帮助我更改时间的位置是8/10/2014 8:54:10pm在此格式中我必须应用与当前时间相反的时间 将大写字母HH更改为小写HH Caps HH将返回24小时格式 小hh将返回12格式 改变这个 private static long converTimeStringINToMillis1(String time) { long milliseconds = 0; try {

这是我应用代码的反向时间时,时间不是 包括am/pm它工作正常当我添加am/pm它不工作请帮助我更改时间的位置是
8/10/2014 8:54:10
pm在此格式中我必须应用与当前时间相反的时间

将大写字母HH更改为小写HH

Caps HH将返回24小时格式

小hh将返回12格式

改变这个

private static long converTimeStringINToMillis1(String time) {

    long milliseconds = 0;

    try {
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        // 25/06/2014 8:41:26
        Date date;
        date = sdf.parse(time);
        milliseconds = date.getTime();
    } catch (ParseException e) {
        milliseconds = 0;
        e.printStackTrace();
    }

    return milliseconds;
}

public static String  setLastSeenTime1(String time){

    long milliseconds = Math.abs(System.currentTimeMillis() -converTimeStringINToMillis(time));

    String lastSeen = "";
    int seconds = (int)milliseconds/1000;
    if(seconds < 60) 
        lastSeen = String.valueOf(seconds) + "sec ago";
    else if(seconds >60 && seconds < 3600)
        lastSeen = String.valueOf((int)seconds/60) + " min ago";
    else if(seconds > 3600 && seconds < 86400)
        lastSeen = String.valueOf((int)seconds/3600) + " hours ago";
    else if(seconds > 86400 && seconds < 172800)
        lastSeen =" Yesterday";
    else if(seconds > 172800 && seconds < 2592000)
        lastSeen = String.valueOf((int)(seconds/(24*3600))) + " days ago";
    else if(seconds > 2592000)
        lastSeen = String.valueOf((int)(seconds/(30*24*3600))) + " months ago";

    return lastSeen;

}


我不精通Java,所以我不会给出答案,但据我所知,当您将字符串(“am/pm”)附加到日期/时间,从而将整个日期/时间转换为字符串时,就会出现问题。要解决这个问题,您必须使用
substr
提取新字符串的日期/时间部分,并对其进行计算。希望这有帮助!仍然不工作我的时间即将到来2014年10月8日8:54:10 Pm系统时间是8:11:2014 10:13:54 Am revrese时间的结果再次到来8天而它应该再次显示1天
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");