在Java中解析日历日期 [英] Parsing date from Calendar in Java

查看:174
本文介绍了在Java中解析日历日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下函数

  public static Date parseDate(String date,String format)throws ParseException 
{
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.parse(date);
}

我在我的代码中使用如下:

  Calendar eDate = Calendar.getInstance(); 
eDate.add(Calendar.DAY_OF_MONTH,10);
日期date = null;
try {
date = parseDate(eDate.getTime()。toString(),yyyy-MM-dd hh-mm-ss);
} catch(ParseException e){
// TODO自动生成的catch块
e.printStackTrace();
}

但它是扔 -

  java.text.ParseException:Unparseable date 

格式不存储在日期 c>。它存储在 String 中。 Date#toString()会返回固定格式javase / 7 / docs / api / java / util / Date.html#toString%28%29rel =nofollow> Javadoc 。



此时只需要格式化 您需要向人类显示日期作为 String

 日历calendar = Calendar.getInstance 
calendar.add(Calendar.DAY_OF_MONTH,10);
日期date = calendar.getTime();
String formattedDate = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)。format(date);
System.out.println(formattedDate);

请注意, MM code> mm 分钟。另请参见 SimpleDateFormat javadoc


I am having following function

public static Date parseDate(String date, String format) throws ParseException
 {
         SimpleDateFormat formatter = new SimpleDateFormat(format);
         return formatter.parse(date);
 }

I am using this as follows in my code

Calendar eDate = Calendar.getInstance();
eDate.add(Calendar.DAY_OF_MONTH,10);
Date date = null;
  try {
   date = parseDate(eDate.getTime().toString(),"yyyy-MM-dd hh-mm-ss");
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

But it is throwing -

 java.text.ParseException: Unparseable date

What is the problem here?

解决方案

The format is not stored in the Date. It is stored in the String. The Date#toString() returns a fixed format which is described in its Javadoc.

Do the formatting only at the moment you need to display a Date to a human as a String.

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 10);
Date date = calendar.getTime();
String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
System.out.println(formattedDate);

Note that MM stands for months and mm for minutes. See also SimpleDateFormat javadoc.

这篇关于在Java中解析日历日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆