日期对象到日历对象的转换

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 时区。它工作... :)

以上是关于日期对象到日历对象的转换的主要内容,如果未能解决你的问题,请参考以下文章

如何将日期字符串转换为日期或日历对象?

ASP.NET vb.net 将月/日/年中的日历日期格式转换为具有日/月/年的日期对象

java中怎么把Long转换成日期格式

在 Java 中将字符串转换为日历对象

如何将 UTC 格式的字符串转换为特定时区的日历?

Java日期类题目