Date
?String dateString = "Oct 1, 2015 12:00:00 AM";
try {
SimpleDateFormat sdf = new SimpleDateFormat("");
sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:6)
SimpleDateFormat
Javadoc包含一个表(部分)
Letter Date or Time Component Presentation Examples G Era designator Text AD y Year Year 1996; 96 Y Week year Year 2009; 09 M Month in year Month July; Jul; 07 w Week in year Number 27 W Week in month Number 2 D Day in year Number 189 d Day in month Number 10 F Day of week in month Number 2 E Day name in week Text Tuesday; Tue u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1 a Am/pm marker Text PM H Hour in day (0-23) Number 0 k Hour in day (1-24) Number 24 K Hour in am/pm (0-11) Number 0 h Hour in am/pm (1-12) Number 12 m Minute in hour Number 30 s Second in minute Number 55 S Millisecond Number 978
我想你想要一个像MMM dd, yyyy hh:mm:ss a
这样的格式。像,
String userDateFormat = "MMM dd, yyyy hh:mm:ss a";
String dateString = "Oct 1, 2015 12:00:00 AM";
DateFormat sdf = new SimpleDateFormat(userDateFormat);
try {
Date date = sdf.parse(dateString);
System.out.println(sdf.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
哪个输出
Oct 01, 2015 12:00:00 AM
答案 1 :(得分:1)
可用于构建格式的Android reference for SimpleDateFormat has a table。
try {
SimpleDateFormat sdf = new SimpleDateFormat("MMM,dd, yyyy hh:mm:s a");
sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
这样可行。
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
sdf.parse(dateString);
答案 3 :(得分:0)
如果您希望月份为oct,jan等,则可以使用此
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
或您可以使用的月份数字
SimpleDateFormat sdf = new SimpleDateFormat("MM dd, yyyy hh:mm:ss a");
答案 4 :(得分:0)
尝试使用此日期格式转换日期字符串
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
答案 5 :(得分:0)
格式化和解析我们希望遇到的各种日期格式。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import android.util.Log;
/**
* Utility class for formatting and parsing the various date formats we expect
* to encounter.
*/
public class DateUtils{
private static final String TAG = "DateUtils";
private static final SimpleDateFormat[] dateFormats;
private static final int dateFormat_default = 7;
private DateUtils() { }
static
{
final String[] possibleDateFormats =
{
"EEE, dd MMM yyyy HH:mm:ss z", // RFC_822
"EEE, dd MMM yyyy HH:mm zzzz",
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.SSSzzzz", // Blogger Atom feed has millisecs also
"yyyy-MM-dd'T'HH:mm:sszzzz",
"yyyy-MM-dd'T'HH:mm:ss z",
"yyyy-MM-dd'T'HH:mm:ssz", // ISO_8601
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HHmmss.SSSz",
"yyyy-MM-dd"
};
dateFormats = new SimpleDateFormat[possibleDateFormats.length];
TimeZone gmtTZ = TimeZone.getTimeZone("GMT");
for (int i = 0; i < possibleDateFormats.length; i++)
{
/* TODO: Support other locales? */
dateFormats[i] = new SimpleDateFormat(possibleDateFormats[i],
Locale.ENGLISH);
dateFormats[i].setTimeZone(gmtTZ);
}
}
/**
* Parse a date string. The format of RSS/Atom dates come in many
* different forms, so this method is extremely flexible and attempts to
* understand many different formats.
*
* Copied verbatim from Informa 0.7.0-alpha2, ParserUtils.java.
*
* @param strdate
* Date string to attempt to parse.
*
* @return
* If successful, returns a {@link Date} object representing the parsed
* date; otherwise, null.
*/
public static Date parseDate(String strdate)
{
Date result = null;
strdate = strdate.trim();
if (strdate.length() > 10) {
// TODO deal with +4:00 (no zero before hour)
if ((strdate.substring(strdate.length() - 5).indexOf("+") == 0 || strdate
.substring(strdate.length() - 5).indexOf("-") == 0)
&& strdate.substring(strdate.length() - 5).indexOf(":") == 2) {
String sign = strdate.substring(strdate.length() - 5,
strdate.length() - 4);
strdate = strdate.substring(0, strdate.length() - 5) + sign + "0"
+ strdate.substring(strdate.length() - 4);
// logger.debug("CASE1 : new date " + strdate + " ? "
// + strdate.substring(0, strdate.length() - 5));
}
String dateEnd = strdate.substring(strdate.length() - 6);
// try to deal with -05:00 or +02:00 at end of date
// replace with -0500 or +0200
if ((dateEnd.indexOf("-") == 0 || dateEnd.indexOf("+") == 0)
&& dateEnd.indexOf(":") == 3) {
// TODO deal with GMT-00:03
if ("GMT".equals(strdate.substring(strdate.length() - 9, strdate
.length() - 6))) {
Log.d(TAG, "General time zone with offset, no change");
} else {
// continue treatment
String oldDate = strdate;
String newEnd = dateEnd.substring(0, 3) + dateEnd.substring(4);
strdate = oldDate.substring(0, oldDate.length() - 6) + newEnd;
// logger.debug("!!modifying string ->"+strdate);
}
}
}
int i = 0;
while (i < dateFormats.length) {
try {
result = dateFormats[i].parse(strdate);
// logger.debug("******Parsing Success "+strdate+"->"+result+" with
// "+dateFormats[i].toPattern());
break;
} catch (java.text.ParseException eA) {
i++;
}
}
return result;
}
/**
* Format a date in a manner that would be most suitable for serialized
* storage.
*
* @param date
* {@link Date} object to format.
*
* @return
* Robust, formatted date string.
*/
public static String formatDate(Date date)
{
return dateFormats[dateFormat_default].format(date);
}
}
或者您可以使用以下功能解析日期 ..
public static Date parseDate(String date, String format) throws ParseException {
if (date == null || date.length() == 0) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.parse(date);
}
希望它会对你有所帮助。
答案 6 :(得分:0)
Date and Time Pattern Result
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM,Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u" 2001-W27-3
然后您可以转换日期字符串,如下所示
String dateString="Oct 1, 2015 12:00:00 AM";
try {
SimpleDateFormat sdf = new SimpleDateFormat("MMM,dd, yyyy hh:mm:s a");
sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}