日期对象到日历对象的转换
Posted
技术标签:
【中文标题】日期对象到日历对象的转换【英文标题】:Conversion of Date object to calendar object 【发布时间】:2014-05-31 05:19:51 【问题描述】:我有一个名为 setDueDate(Calendar arg0) 的函数。但是,字段中的值是格式为“yyyy/MM/dd”的日期。有没有办法将 Date 对象转换为 Calendar 并将其传递给函数.
【问题讨论】:
与***.com/questions/6185966/…重复 首先,感谢您的回复。给定的解决方案是返回日历对象,这很好。但是当我将该对象传递给我的函数时,日期不是指定格式对...?跨度> 你能发布一些代码,这会很有帮助 将日期转换为所需格式的方法: private static String convertDateToString(Date date) SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd");日期=新日期();字符串 strDate=dateFormat.format(date);返回日期; 获取日历对象的方法:private static Calendar getCalendarFromString(String str_date) throws ParseException DateFormat formatter;日期日期; if (str_date.contains(" ")) str_date = str_date.substring(0, str_date.indexOf(" ")); formatter = new SimpleDateFormat("yyyy/MM/dd"); date = (Date) formatter.parse(str_date);日历 cal = Calendar.getInstance(); cal.setTime(日期);返回校准; 【参考方案1】:下面的程序是我从你提供的代码中得到的。代码没有问题。
我假设您在 setDueDate() 函数中遇到错误,但您没有提供它
public class ConvertDateToCalender
public static void main(String[] args)
try
Date date = new Date();
String strDate = convertDateToString(date);
Calendar cal = Calendar.getInstance();
cal = getCalendarFromString(strDate);
//activityData.setDueDate(cal);
catch (Exception ex)
private static String convertDateToString(Date date)
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd");
date=new Date();
String strDate=dateFormat.format(date);
return strDate;
private static Calendar getCalendarFromString(String str_date) throws ParseException
DateFormat formatter;
Date date;
if (str_date.contains(" "))
str_date = str_date.substring(0, str_date.indexOf(" "));
formatter = new SimpleDateFormat("yyyy/MM/dd");
date = (Date) formatter.parse(str_date);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
【讨论】:
setDueDate() 函数是由 oracle 提供的一个内置函数,它只接受日历类型的参数。但是我应该以日历的形式发送日期值,这在 2 天后是不可能的。 .这是我面临的问题 @Snidgha 为什么在 getCalendarFromString() 函数中有一个 if 条件来检查空格 (" ")。您确定传递的 str_date 格式为“yyyy/MM/dd”吗? 实际上不需要该代码。是的 str_date 是必需的格式。但是,当我再次将其解析为日期时,格式正在更改 @Snidgha 我认为从我这边运行代码没有任何问题。我最后的猜测是设置 SimpleDateFormat 的语言环境。将您的语言环境设置为 Locale.getDefault() 嘿 kaleel ..问题得到了解决。因为我正在为 web 服务编写客户端,我检查了要在 web 服务中填充的字段的类型。它以 xsd:Date 的形式给出。我检查了 xsd:date 格式的时区通过日历对象与 xsd:Date 时区。它工作... :)以上是关于日期对象到日历对象的转换的主要内容,如果未能解决你的问题,请参考以下文章