我假设了你的已知时间类型为Calendar,如果不是你也可以自己改成Date类型,代码如下:
我们提供的服务有:成都做网站、成都网站制作、微信公众号开发、网站优化、网站认证、日照ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的日照网站制作公司
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
public class Test {
public static void main(String[] args) {
//假如这个是你已知的时间类型
Calendar cal = Calendar.getInstance();
cal.getTimeInMillis();
//北京时区GMT+8
Calendar beijingcal = Calendar.getInstance();
beijingcal.clear();
beijingcal.setTimeZone(TimeZone.getTimeZone("GMT+8"));
beijingcal.setTimeInMillis(cal.getTimeInMillis());
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String beijingFormatStr = fmt.format(beijingcal.getTime());
System.out.println(beijingFormatStr);
}
}
import java.util.Scanner;
public class TimeFormatException extends Exception {
public void printException() {
System.out.println("输入时间错误!!程序结束");
}
public TimeFormatException() {
}
public void printDate() throws TimeFormatException {
boolean bStop = true;
Scanner input = new Scanner(System.in);
String reg = "([0-1][0-9]|2[0-4]):([0-5][0-9])";
while (bStop) {
System.out.println("请输入时间:");
String str = input.next();
if (str.matches(reg)) {
int hour = Integer.parseInt(str.substring(0, 2));
String minutes = str.substring(2, 5);
if (hour 12)
System.out.println("现在时间是:" + Integer.toString(hour).concat(minutes) + " am");
else if (hour == 12)
System.out.println("现在时间是:" + Integer.toString(hour).concat(minutes) + " pm");
else if(hour == 24)
System.out.println("现在时间是:" + "00".concat(minutes) + " am");
else
System.out.println("现在时间是:" + Integer.toString(hour - 12).concat(minutes) + " pm");
} else {
bStop = false;
throw new TimeFormatException();
}
}
}
public static void main(String[] args) {
try {
new TimeFormatException().printDate();
} catch (TimeFormatException e) {
e.printException();
}
}
}
如果看不懂 尽管问 ch_felix168_88@163.com
楼主,我提供一个我自己一直在用,很实用的一个日期转换类给你吧。你创建一个工具类,使用方法也很简单的。
工具类DateFormater源代码:
public class DateFormater {
public static String dateToString(Date date,String filterd){
SimpleDateFormat sf=new SimpleDateFormat(filterd);
return sf.format(date);
}
public static Date dateToDate(Date date,String filterd){
Date result;
SimpleDateFormat sf=new SimpleDateFormat(filterd);
String date_str=sf.format(date);
try {
result = sf.parse(date_str);
return result;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static Date stringToDate(String date_str,String filterd){
Date result;
SimpleDateFormat sf=new SimpleDateFormat(filterd);
try {
result = sf.parse(date_str);
return result;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
使用范例:
楼主这个问题可以这样使用:
Date date = DateFormater.stringToDate("2011-03-01 23:59:59","yyyy-MM-dd HH:mm:ss");
date.setHour(date.getHour()+1);
这样就得到了时间推迟了一个小时的Date对象了。
直接输出本地时间格式,可以用date.toLocaleString()
按照一定格式输出,可以用DateFormater.dateToString(date,"yyyy-MM-dd")
具体的格式根据输出样式字符串的定义。
楼主我在做系统调度的时候,经常使用到时间的计算,我也是使用这个实用的时间转换类,希望这个类会带给楼主帮助!
谢谢!