2011-07-27 183 views
58

我從服務器獲得的時間與Jul 27, 2011 8:35:29 AM類似。我想將它轉換爲yyyy-MM-dd HH:mm:ss將日期時間轉換爲24小時格式

我也希望轉換時間爲24小時制。任何人都可以解決這個問題。我想得到的輸出就像2011-07-27 08:35:29

回答

91

試試這個:

String dateStr = "Jul 27, 2011 8:35:29 AM"; 
DateFormat readFormat = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss aa"); 
DateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date = null; 
try { 
    date = readFormat.parse(dateStr); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

if (date != null) { 
    String formattedDate = writeFormat.format(date); 
} 
+3

我無法下午2:46轉換爲14:46與此代碼。我錯過了什麼嗎? – user1930402

+0

@ user1930402您可以通過將您的讀取格式更改爲'hh:mm a'來完成此操作 - 您的輸入忽略了秒數(是一種猜測)。 –

10

試試這個:

Date date=new Date("12/12/11 8:22:09 PM");  
System.out.println("Time in 24Hours ="+new SimpleDateFormat("HH:mm").format(date)); 
1

只是一個提示,

嘗試使用而不是Java JodaTime,util.Date 它更強大和它有一個方法 toString(「」),你可以通過你想要的格式,如 toString(「yyy-MM-dd HH:mm:ss」);

http://joda-time.sourceforge.net/

115

ħVS h是24小時對12小時的格式之間的差異。

+0

一天的救星。謝謝。 –

+0

謝謝,最後它的工作,:) – Nitesh

+2

我覺得很愚蠢。 – sschrass

4

我以下面給出的日期爲例,根據您的要求打印兩種不同格式的日期。

String date="01/10/2014 05:54:00 PM"; 

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa",Locale.getDefault()); 

try { 
      Log.i("",""+new SimpleDateFormat("ddMMyyyyHHmmss",Locale.getDefault()).format(simpleDateFormat.parse(date))); 

      Log.i("",""+new SimpleDateFormat("dd/MM/yyyy HH:mm:ss",Locale.getDefault()).format(simpleDateFormat.parse(date))); 

     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

如果您還有任何疑問,請回復。謝謝。

+0

很好的答案vivek –

1
import java.text.SimpleDateFormat; 

import java.util.Date; 

public class DateFormatExample { 

public static void main(String args[]) { 

    // This is how to get today's date in Java 
    Date today = new Date(); 

    //If you print Date, you will get un formatted output 
    System.out.println("Today is : " + today); 

    //formatting date in Java using SimpleDateFormat 
    SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy"); 
    String date = DATE_FORMAT.format(today); 
    System.out.println("Today in dd-MM-yyyy format : " + date); 

    //Another Example of formatting Date in Java using SimpleDateFormat 
    DATE_FORMAT = new SimpleDateFormat("dd/MM/yy"); 
    date = DATE_FORMAT.format(today); 
    System.out.println("Today in dd/MM/yy pattern : " + date); 

    //formatting Date with time information 
    DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS"); 
    date = DATE_FORMAT.format(today); 
    System.out.println("Today in dd-MM-yy:HH:mm:SS : " + date); 

    //SimpleDateFormat example - Date with timezone information 
    DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS Z"); 
    date = DATE_FORMAT.format(today); 
    System.out.println("Today in dd-MM-yy:HH:mm:SSZ : " + date); 

} 

} 

輸出:

今天是:星期五11月2日16時11分27秒IST 2012

今天DD-MM-yyyy格式:2012年2月11日

在今天DD/MM/YY圖案:12年2月11日

今天DD-MM-YY:HH:MM:SS:12年2月11日:16:11:316

今天在DD-MM-YY:HH:MM:SSZ:12年2月11日:16:11:316 0530

65
kk = Hours in 1-24 format 
hh= hours in 1-12 format 
KK= hours in 0-11 format 
HH= hours in 0-23 format 
+0

非常感謝..你是生命的救星.. –

2

IN兩行:

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("hh:mm aa",Locale.getDefault()); 
     FAJR = new SimpleDateFormat("HH:mm",Locale.getDefault()).format(simpleDateFormat.parse("8:35 PM"); 
+0

這對我有效! – user1930402

0

這是使用的方法JODA。

輸入的例子是07/20/2015 01:46:34.436 AM

public static String get24HourFormat(String dateString){ 
     Date date = new Date(); 
     DateTime date1=new DateTime(); 

     // String date=""; 
     int hour=0; 
     //int year=0; 
     if(dateString!=null){ 

      try { 
       DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss.SSS aa"); 
       DateTimeFormatter output = DateTimeFormat.forPattern("kk"); 

       date1=formatter.parseDateTime(dateString); 
       hour=date1.getHourOfDay(); 
       System.out.println(output.print(date1)); 
       // System.out.println(date); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     return hour+""; 
    } 
0

隨着日曆它的工作原理如下:

//create first Calendar object 
    Calendar calendar = Calendar.getInstance(); 

    calendar.set(Calendar.HOUR_OF_DAY, 15); // 3 PM 
    // the same is 
    calendar.set(Calendar.AM_PM, Calendar.PM); // choose PM mode 
    calendar.set(Calendar.HOUR, 3); // 3 PM 

    System.out.println(calendar.get(Calendar.HOUR)); // AM_PM format 
    System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 0-23 format 
1
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

    Date date = new Date(); 
    Date date2 = new Date("2014/08/06 15:59:48"); 

    String currentDate = dateFormat.format(date).toString(); 
    String anyDate = dateFormat.format(date2).toString(); 

    System.out.println(currentDate); 
    System.out.println(anyDate); 
相關問題