在android中将字符串转换为日期格式

我正在尝试将字符串转换为日期格式。我尝试了很多方法来做到这一点。但是没有成功。 我的字符串是“2012年1月17日”。 我想将其转换为“2011-10-17”。 有人可以告诉我这样做的方法吗? 如果您有任何实例,那将是一个真正的帮助!

  • 有没有办法在24以下的Android API上使用Java 8function接口?
  • 如何在Kotlin中实例化对象时覆盖方法?
  • Android - 条形码扫描,选项? 斑马线?
  • Android NDK,保存实时C ++对象
  • 删除部分字符串后的所有内容
  • 如何在团结游戏中使用非主要活动来捕获自定义url?
  • 下载文件时的通知图标
  • 如何在Android Studio中启用ProGuard混淆?
  • public class DateFormatClass { public static void main(String[] args) { String mytime="Jan 17, 2012"; SimpleDateFormat dateFormat = new SimpleDateFormat( "MMM dd, yyyy"); Date myDate = null; try { myDate = dateFormat.parse(mytime); } catch (ParseException e) { e.printStackTrace(); } SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd"); String finalDate = timeFormat.format(myDate); System.out.println(finalDate); } } 
      String format = "yyyy-MM-dd"; SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US); System.err.format("%30s %s\n", format, sdf.format(new Date(0))); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); System.err.format("%30s %s\n", format, sdf.format(new Date(0))); 

    在PDT时区中运行时产生此输出:

      yyyy-MM-dd 1969-12-31 yyyy-MM-dd 1970-01-01 

    有关详细信息,请查看此处

    我建议使用Joda Time ,它是Java中日期/日期时间操作的最佳和最简单的库,它是ThreadSafe(与Java中的默认格式化类相反)。

    你这样使用它:

     // Define formatters: DateTimeFormatter inputFormat = DateTimeFormat.forPattern("MMM dd, yyyy"); DateTimeFormatter outputFormat = DateTimeFormat.forPattern("yyyy-MM-dd"); // Do your conversion: String inputDate = "Jan 17, 2012"; DateTime date = inputFormat.parseDateTime(inputDate); String outputDate = outputFormat.print(date); // or: String outputDate = date.toString(outputFormat); // or: String outputDate = date.toString("yyyy-MM-dd"); // Result: 2012-01-17 

    它还为日期操作提供了大量有用的方法(添加日期,时差等)。 它为大多数类提供了接口,以便于测试和dependency injection。

    为什么要将字符串转换为字符串尝试将当前时间(以毫秒为单位)转换为格式化字符串,此方法会将您的milisconds转换为数据格式。

      public static String getTime(long milliseconds) { return DateFormat.format("MMM dd, yyyy", milliseconds).toString(); } 

    您还可以尝试使用DATE FORMATE类来更好地理解。

     You can't convert date from one format to other. while you are taking the date take you have take the date which ever format the you want. If you want the date in yyyy-mm-dd. You can get this by using following way. java.util.Calendar calc = java.util.Calendar.getInstance(); int day = calc.get(java.util.Calendar.DATE); int month = calc.get(java.util.Calendar.MONTH)+1; int year = calc.get(java.util.Calendar.YEAR); String currentdate = year +"/"+month +"/"+day ; 
     public static Date getDateFromString(String date) { Date dt = null; if (date != null) { for (String sdf : supportedDateFormats) { try { dt = new Date(new SimpleDateFormat(sdf).parse(date).getTime()); break; } catch (ParseException pe) { pe.printStackTrace(); } } } return dt; }