我正在尝试将library(dplyr)
解析为string
,但是它没有显示我制作的SimpleDateFormat
格式。
这是结果:
2019年6月23日星期日00:00:00 GMT + 08:00
这就是我需要的:
2019-07-23
这是我的代码:
yyyy-MM-dd
答案 0 :(得分:1)
通过以下更简单的方法来做到这一点,
String date = year+"-"+month+"-"+dayOfMonth;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
try {
Date datex = format.parse(date);
String outputDate = format.format(datex);
System.out.println(outputDate);
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
在扩展中添加此功能即可使用
fun Context.getFormattedDate(
inputFormat: String = "yyyy-MM-dd",
outputFormat: String,
inputDate: String,
locale: Locale = Locale("EN")
): String {
val inputFormat = inputFormat
var outputFormat = outputFormat
if (outputFormat == "") {
outputFormat = "EEEE d 'de' MMMM 'del' yyyy" // if inputFormat = "", set a default output format.
}
var parsed: Date? = null
var outputDate = ""
val dfInput = SimpleDateFormat(inputFormat, locale)
val dfOutput = SimpleDateFormat(outputFormat, locale)
try {
parsed = dfInput.parse(inputDate)
outputDate = dfOutput.format(parsed)
} catch (e: Exception) {
Log.e("formattedDateFromString", "Exception in formate Date From string(): " + e.message)
e.printStackTrace()
}
return outputDate
}
答案 2 :(得分:0)
这将为您带来理想的结果
String date = year+"-"+month+"-"+dayOfMonth;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd",
Locale.getDefault());
Date datex = null;
try {
datex = format.parse(date);
String formattedDate=format.format(datex);
Log.e("FormattedDate",formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
答案 3 :(得分:0)
将此功能用于日期的任何转换,都可以使用:)
在Java中
/**
* Changes date format from one format to another format.
*
* @param fromFormat format of received date string.
* @param toFormat format of returned(needed) date string.
* @param date date whose format is to be changed in string.
* @return date string formatted into toFormat
*/
public static String changeDateFormat(String fromFormat, String toFormat, String date) {
SimpleDateFormat toDateFormat = new SimpleDateFormat(toFormat);
SimpleDateFormat dateFormat = new SimpleDateFormat(fromFormat);
try {
return toDateFormat.format(dateFormat.parse(date));
} catch (Exception e) {
e.printStackTrace();
return "NA";
}
}
在科特林
fun changeDateFormat(fromFormat: String, toFormat: String, date: String): String {
val toDateFormat = SimpleDateFormat(toFormat)
val dateFormat = SimpleDateFormat(fromFormat)
return try {
toDateFormat.format(dateFormat.parse(date))
} catch (e: Exception) {
e.printStackTrace()
"NA"
}
}
代码内
AppLogs.e(
"DATE",
Utility.changeDateFormat("E MMM dd HH:mm:ss Z yyyy", "yyyy-MM-dd", "Sun Jun 23 00:00:00 GMT+05:30 2019")
)
答案 4 :(得分:0)
这将为您提供所需的输出,2019-07-23
:
onDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
LocalDate date = LocalDate.of(year, month + 1, dayOfMonth);
String dateString = date.toString();
System.out.println(dateString);
}
};
我正在使用Java.time(现代Java日期和时间API)中的LocalDate
。我们需要在月份上加上一个数字,因为DatePicker
令人困惑地计算从1月的0到12月的11的月份,而LocalDate
则用与人类相同的数字来表示月份。 LocalDate.toString()
产生您要求的yyyy-MM-dd
格式。符合ISO 8601。
是的,java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。答案 5 :(得分:-1)
尝试此操作对我来说可以正常工作,可以将长日期转换为简单日期。
public String getTimeStamp(long timeinMillies) {
String date = null;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // modify format
date = formatter.format(new Date(timeinMillies));
System.out.println("Today is " + date);
return date;
}
或使用
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date(year, month, day);
String strDate = dateFormatter.format(d);
谢谢,编码愉快!