我想将日期1格式的日期转换成日期2格式的日期对象。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM dd, yyyy");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
cal.set(2012, 8, 21);
Date date = cal.getTime();
Date date1 = simpleDateFormat.parse(date);
Date date2 = simpleDateFormat.parse(date1);
println date1
println date2
从Java 8开始,我们可以如下实现这一点:
private static String convertDate(String strDate)
{
//for strdate = 2017 July 25
DateTimeFormatter f = new DateTimeFormatterBuilder().appendPattern("yyyy MMMM dd")
.toFormatter();
LocalDate parsedDate = LocalDate.parse(strDate, f);
DateTimeFormatter f2 = DateTimeFormatter.ofPattern("MM/d/yyyy");
String newDate = parsedDate.format(f2);
return newDate;
}
输出将是 : “07/25/2017”
LocalDate.parse(
"January 08, 2017" ,
DateTimeFormatter.ofPattern( "MMMM dd, uuuu" , Locale.US )
).format( DateTimeFormatter.BASIC_ISO_DATE )
问题和其他答案使用麻烦的旧日期时间类,现在是遗留的,被java.time类取代。
您有仅限日期的值,因此使用仅限日期的类。LocalDate
类表示没有一天中的时间和时区的仅限日期值。
String input = "January 08, 2017";
Locale l = Locale.US ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MMMM dd, uuuu" , l );
LocalDate ld = LocalDate.parse( input , f );
你想要的输出格式是由ISO 8601标准定义的。对于仅包含日期的值,“扩展”格式为YYYY-MM-DD,如< code>2017-01-08,而最大限度减少分隔符使用的“基本”格式为YYYYMMDD,如< code>20170108。
为了可读性,我强烈建议使用扩展格式。但是,如果您坚持使用基本格式,该格式化程序将被预定义为名为< code>BASIC_ISO_DATE的< code>DateTimeFormatter类中的一个常量。
String output = ld.format( DateTimeFormatter.BASIC_ISO_DATE );
请在IdeOne.com上查看此代码运行。
ld.toString(): 2017-01-08
产量:20170108
java.time框架内置于Java 8和更高版本中。这些类取代了麻烦的旧式日期-时间类,如< code>java.util.Date、< code>Calendar,
若要了解详细信息,请参阅 Oracle 教程。搜索堆栈溢出以获取许多示例和说明。规格是 JSR 310。
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
您可以直接与数据库交换 java.time 对象。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。不需要字符串,不需要 java.sql.*
类。Hibernate 5
从何处获取时间类?
使用SimpleDataFormat#格式
:
DateFormat originalFormat = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("yyyyMMdd");
Date date = originalFormat.parse("August 21, 2012");
String formattedDate = targetFormat.format(date); // 20120821
还请注意,parse
接受一个字符串
,而不是一个已经解析的日期
对象。
问题内容: 我正在寻找使用SQL将一种日期格式转换为另一种格式。我正在使用用于SQLite的数据库浏览器,日期存储在“ TEXT”类型的列中。 这是当前格式的2个示例: 2017/4/17上午9:09:09 2017/10/4下午10:21:13 请注意,在当前的日期,月份和小时格式中,如果只有一位数字,则当前不会以前导“ 0”填充。他们也把月份放在第一位,然后是日期,然后是年份。这两个示例应转换
我有一个输入日期作为字符串,格式为dd/MM/yyyy 现在我想把它转换成日期对象,格式为yyyy-MM-dd 目前我正在做 输入为:“2013年4月2日” 但我的约会对象是… 所需输出为:2013-02-04(不是字符串,而是日期对象)
问题内容: 有没有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式? 我有这个: 但是我当然希望它返回一个当前日期,而不是返回“黎明”。我究竟做错了什么? 问题答案: 第二个参数必须是正确的时间戳(自1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。 您可以使用 strtotime() 将日期字符串转换为时间戳。但是,即使strtotime()也无法识别格式
问题内容: 我只是在自己学习熊猫,而遇到的问题很少。 在从csv文件读取的DataFrame中,我有一列包含日期数据,该日期数据具有不同的格式(例如和,可能为空白。),并且我想统一此列的格式。但是我不知道是否还有其他格式。因此,当我使用时,它会引发一些错误,例如格式不匹配以及数据不符合时间要求。如何统一此列的格式? 我已经将该列的一部分转换为datetime dtype,它的格式是。我可以保留da
问题内容: 我在MySQL中有专栏。 如何使用PHP 将其转换为 mm / dd / yy H:M(AM / PM)显示 ? 问题答案: 要将从MySQL检索的日期转换为请求的格式(): 请参考PHP日期格式选项以调整格式。
如何在本地日期中设置上述日期的格式,键入格式为dd MM yyyy。但您可以使用字符串日期模式,即dd-MM-yyyy。输出应仅为本地日期类型。