首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java使用值字符串创建日期对象

java使用值字符串创建日期对象
EN

Stack Overflow用户
提问于 2013-04-25 14:45:42
回答 9查看 163.9K关注 0票数 26

我使用它来获取当前时间:

代码语言:javascript
复制
java.util.Calendar cal = java.util.Calendar.getInstance();
    System.out.println(new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss")
            .format(cal.getTime()));

我想把值(我把它打印出来)放到一个date对象中,我尝试这样做:

代码语言:javascript
复制
Date currentDate = new Date(value);

但是eclipse告诉我这个功能并不好。

编辑 value是我使用system.out.println打印给您的值

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-04-25 14:49:36

当您想要将字符串转换为Date对象时,请使用SimpleDateFormat#parse

试着使用

代码语言:javascript
复制
String dateInString = new java.text.SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss")
        .format(cal.getTime())
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, dd/MM/yyyy/hh:mm:ss");
Date parsedDate = formatter.parse(dateInString);

.Additional的意思是如果你想把一个Date转换成String,那么你应该使用SimpleDateFormat#format函数。

现在你需要指出的是,new Date(String)已经被弃用,任何人只要想要解析,就不推荐使用now.Now,那么他/她就应该使用SimpleDateFormat#parse

有关SimpleDateFormat选项中使用的更多日期和时间模式,请参阅official doc

票数 59
EN

Stack Overflow用户

发布于 2013-04-25 14:50:31

使用SimpleDateFormat解析方法:

代码语言:javascript
复制
import java.text.DateFormat;
import java.text.SimpleDateFormat;

String inputString = "11-11-2012";
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date inputDate = dateFormat.parse(inputString, dateFormat );

由于我们使用的是带有LocalDate的Java8,因此我建议使用next:

代码语言:javascript
复制
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

String inputString = "11-11-2012";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate inputDate = LocalDate.parse(inputString,formatter);
票数 35
EN

Stack Overflow用户

发布于 2013-04-25 14:50:55

首先要知道ECLIPSE这样做的原因。

Date只有一个构造函数 date (long date),它请求long数据类型的date。

您正在使用的构造函数

已弃用日期(字符串% s)。从JDK1.1版开始,替换为DateFormat.parse(字符串s)。

这就是为什么eclipse告诉我们这个函数不好的原因。

请参阅此官方文档

从您的上下文中弃用的方法--源代码--

方法或类可能被弃用的原因有很多。在不破坏向后兼容性的情况下,应用程序接口可能不容易扩展,因此会被更强大的应用程序接口所取代(例如,java.util.Date已被弃用,取而代之的是日历或Java1.0事件模型)。它也可能在某些情况下无法工作或产生不正确的结果(例如,一些java.io流类在某些编码下不能正常工作)。有时一个应用程序接口只是构思不周( servlet API中的SingleThreadModel),没有被任何东西取代。一些早期的调用已经被"Java Bean"-compatible方法所取代(以getSize为大小,以getBounds为界限等)。

谷歌搜索解决方案是否仅限于 IT--

您可以通过将日期字符串转换为长毫秒来使用date(long date),stackoverflow为此目的提供了许多帖子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16208121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档