自己写的检测时间的代码 可以根据格式自己选择。 希望可以帮到你噢!!public class DateTime { private static SimpleDateFormat hmSdf = new SimpleDateFormat("HH"); private static SimpleDateFormat mdSdf = new SimpleDateFormat(":mm"); private static SimpleDateFormat ymdSdf = new SimpleDateFormat("yyyy-MM-dd"); private static SimpleDateFormat yearSdf = new SimpleDateFormat("yyyy"); private static SimpleDateFormat mmsdf = new SimpleDateFormat("MM"); private static SimpleDateFormat ddsdf = new SimpleDateFormat("dd"); public static int getTimestamp() { return (int)(System.currentTimeMillis()/1000); }
public static String getDateString(){ return getDateTimeStringFormat("yyyy-MM-dd"); }
public static String getDateTimeString(){ return getDateTimeStringFormat("yyyy-MM-dd kk:mm:ss"); }
public static String getDateTimeStringFormat(String dateFormat){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); Date date = new Date(); return simpleDateFormat.format(date); } }
谢谢~~你使用这个SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat); 在时间格式化的时候时区还是会影响格式化后的值的~~
你要不影响直接拆再加起来不就可以了 String s="20080105"; Pattern p = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})"); Matcher m = p.matcher(s); while (m.find()) { System.out.println(m.group(1)+"-"+m.group(2)+"-"+m.group(3)) ; }或用substring(start, end)
private CharSequence setTime() { String time = "20080309"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = null; try { date = sdf.parse(time); } catch (ParseException pe) { Log.e("time", pe.getMessage()); } SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); return date == null ? "error" : sdf2.format(date); }
private static SimpleDateFormat hmSdf = new SimpleDateFormat("HH");
private static SimpleDateFormat mdSdf = new SimpleDateFormat(":mm");
private static SimpleDateFormat ymdSdf = new SimpleDateFormat("yyyy-MM-dd");
private static SimpleDateFormat yearSdf = new SimpleDateFormat("yyyy");
private static SimpleDateFormat mmsdf = new SimpleDateFormat("MM");
private static SimpleDateFormat ddsdf = new SimpleDateFormat("dd");
public static int getTimestamp() {
return (int)(System.currentTimeMillis()/1000);
}
public static String getDateString(){
return getDateTimeStringFormat("yyyy-MM-dd");
}
public static String getDateTimeString(){
return getDateTimeStringFormat("yyyy-MM-dd kk:mm:ss");
}
public static String getDateTimeStringFormat(String dateFormat){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
Date date = new Date();
return simpleDateFormat.format(date);
}
}
在时间格式化的时候时区还是会影响格式化后的值的~~
Pattern p = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1)+"-"+m.group(2)+"-"+m.group(3)) ;
}或用substring(start, end)
{
String time = "20080309";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = null;
try {
date = sdf.parse(time);
} catch (ParseException pe) {
Log.e("time", pe.getMessage());
}
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
return date == null ? "error" : sdf2.format(date);
}
SimpleDateFormat这里获取的是默认时区,
这样明白吗?
明白了。private CharSequence setTime()
{
String time = "20080309:03:56";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd:hh:mm");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = null;
try {
date = sdf.parse(time);
} catch (ParseException pe) {
Log.e("time", pe.getMessage());
}
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd-hh-mm");
sdf2.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
sdf2.setTimeZone(TimeZone.getTimeZone("UTC")); return date == null ? "error" : sdf2.format(date);
}你以前是什么时区,就用TimeZone.getTimeZone 设置成什么时区,"UTC" 就是你指的0时区吧?