Android / Java 将 String 日期转换为 long 类型

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26119072/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 01:52:45  来源:igfitidea点击:

Android / Java convert String date to long type

javaandroiddatecalendarandroid-contentprovider

提问by David Finder

I need to convert a string in the format "dd/mm/yyyy", to a long type. In order to pass the value to the calendarProvider in android.

我需要将格式为“dd/mm/yyyy”的字符串转换为长类型。为了将值传递给android中的calendarProvider。

Currently I have:

目前我有:

Calendar calendar = Calendar.getInstance();
long startEndDate = 0;
Calendar currentDateInfo = Calendar.getInstance();
currentDateInfo.set(calendar.get(Calendar.YEAR), calendar.SEPTEMBER, calendar.get(Calendar.DAY_OF_MONTH));
startEndDate = currentDateInfo.getTimeInMillis();

I need:

我需要:

long startDate = *Some sort of conversion* EditText.getText();

I've tried using SimpleDateFormat but i'm having problems getting the correct type back. Any help would be much appreciated.

我试过使用 SimpleDateFormat 但我在获取正确的类型时遇到问题。任何帮助将非常感激。

采纳答案by Ken Wolf

You can use the following code to get a long value (milliseconds since January 1, 1970, 00:00:00 GMT) from a String date with the format "dd/mm/yyyy".

您可以使用以下代码从格式为“dd/mm/yyyy”的字符串日期中获取长值(自 1970 年 1 月 1 日以来的毫秒数,格林威治标准时间 00:00:00)。

try {
    String dateString = "30/09/2014";
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date = sdf.parse(dateString);

    long startDate = date.getTime();

} catch (ParseException e) {
    e.printStackTrace();
}

回答by vinayak mishra

Use like this your code

像这样使用你的代码

String[] dateArray = dateString.split("-");

int year = Integer.parseInt(dateArray[0]);
int month = Integer.parseInt(dateArray[1]);
int date = Integer.parseInt(dateArray[2]);

GregorianCalendar gc = new GregorianCalendar(year,month,date);
long timeStamp = gc.getTimeInMillies();