创建函数以使当前日期以没有时间戳的字符串格式显示的最有效方法是啥? [复制]
Posted
技术标签:
【中文标题】创建函数以使当前日期以没有时间戳的字符串格式显示的最有效方法是啥? [复制]【英文标题】:What is the most efficient way to create a function so that the current date is displaying in String format with no timestamp? [duplicate]创建函数以使当前日期以没有时间戳的字符串格式显示的最有效方法是什么? [复制] 【发布时间】:2014-04-18 09:10:51 【问题描述】:我是编程和使用 Java 的初学者。我正在尝试创建一个函数,以便当前日期将显示为 String
并且没有时间戳信息。我希望日期的格式为“yyyy/MM/dd”,但我遇到了麻烦。搜了一下发现可以使用java.util.Calendar
,并且可以清除带时间戳的字段值,比如MINUTE
、SECOND
等设置为0的值。我试过这个代码但有问题:
package com.java.date.util
import java.util.Calendar;
import java.util.Date;
public class DateWithNoTimestamp
public final static String dateOnly(Date date)
String dateNoTime = date.toString();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0)
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return dateNoTime;
我是初学者,目前我只是想了解基础知识。我知道有一种方法可以显示日期的格式我只是不确定如何去做。
【问题讨论】:
【参考方案1】:像这样格式化日期:(这对我有用)
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(calendar.getTime()); // it gives "Sab May 17 10:22:23 EST 2014"
String formatted = myFormat.format(calendar.getTime());
System.out.println(formatted); // it gives "2014-05-17"
干杯!
【讨论】:
对我来说最好的办法是将所有这些都包装在一个方法中,然后能够在 main 中调用该方法。该方法将从另一个类中调用,并且该方法及其属性和变量将在另一个类中。任何方法都会很好。抱歉,这是我一直在做的一项任务,只是按照任务的指示进行。 创建一个新类,并用 public static String myCalFunction().... 包装代码,这将返回一个字符串作为结果。您可以在 main 中创建此类的新实例,然后调用所需的函数。如果放 STATIC 可以直接使用:MyCalClass.myCalFunction();【参考方案2】:使用SimpleDateFormat
- 它只是一行:
return new SimpleDateFormat("yyyyMMdd").format(new Date());
如果您想要不同的格式,请改用dd/MM/yyyy
等。
请注意,new Date()
是当前日期,因此如果您想要当前日期,则无需将日期传递给您的方法。
另外,避免使用 Calendar 类:它有点坏了。
【讨论】:
【参考方案3】:您可以使用new Date()
获取当前日期/时间的实例。然后,您可以使用 SimpleDateFormatter
和您提供的格式来仅获取日/月/年。
【讨论】:
以上是关于创建函数以使当前日期以没有时间戳的字符串格式显示的最有效方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在sqlserver中怎么将一个时间字串值转换成时间戳的数字形式