我想将系统日期转换为yyyy-MM-dd
格式。 SO中也有类似的问题。我发现我需要以输入格式解析日期,然后转换为输出格式。但我自己陷入了第一阶段。我无法解析系统日期(Sat Apr 25 14:44:15 IST 2015
)。
这是我的MWE:
import java.util.*;
import java.text.*;
public class Test
{
public static void main(String[] args)
{
try
{
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MM dd HH:mm:ss aaa YYYY");
date = dateFormat.parse(date.toString());
System.out.println(date);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
我得到例外:
无法解释的日期:"星期六4月25日14:53:33 IST 2015"
答案 0 :(得分:1)
Date
对象可以转换为任何日期格式的字符串。
字符串可以转换为日期,但它只能以标准日期格式出现,但不能在你想要的那个中出现..
如果您想将系统日期格式化为 yyyy-MM-dd 格式,请使用:
Date date = new Date();
SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd");
String date1 = dateFormater.format(date);
正如您在评论中指定的那样,您希望用当前日期减去sql日期,然后将sql日期转换为正常日期格式。
像这样:
String date = your date;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = dateFormat.parse(date);
Date currentdate = new Date();
然后使用日历对象:
Calendar calendar = Calendar.getInstance();
calendar.setTime(date1);
Calendar calendar2 = calendar.getInstance();
calendar2.setTime(currentdate);
long difference = (calendar2.getTimeInMillis() - calendar
.getTimeInMillis()) / 60000;
这将为您提供两分钟之间的差异。
答案 1 :(得分:0)
这对你有用
public class Test1 {
public static void main(String[] args) {
try
{
Date date = new Date();
System.out.println(date);
String dateFormat = new SimpleDateFormat("EEE MM dd HH:mm:ss aaa YYYY").format(date);
System.out.println(dateFormat);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
输出
Sat Apr 25 15:10:38 IST 2015
Sat 04 25 15:10:38 PM 2015
答案 2 :(得分:0)
我认为你应该这样做。
using
但是你应该理解“日期”和“日期格式”之间的区别。