我想以这种格式 dd/mm/YYYY 将 Long 值转换为字符串或日期。
我有这个长格式的值:1343805819061。
是否可以将其转换为日期格式?
我想以这种格式 dd/mm/YYYY 将 Long 值转换为字符串或日期。
我有这个长格式的值:1343805819061。
是否可以将其转换为日期格式?
您可以使用下面的代码行来执行此操作。这里 timeInMilliSecond 是长值。
String dateString = new SimpleDateFormat("MM/dd/yyyy").format(new Date(TimeinMilliSeccond));
或者你也可以使用下面的代码。
String longV = "1343805819061";
long millisecond = Long.parseLong(longV);
// or you already have long value of date, use this instead of milliseconds variable.
String dateString = DateFormat.format("MM/dd/yyyy", new Date(millisecond)).toString();
参考:- DateFormat和SimpleDateFormat
PS 根据您的需要更改日期格式。
您可以在 Date 实例或构造函数 Date(long) 上使用方法 setTime;
setTime(long time)
Sets this Date object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT.
Date(long date)
Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT
然后使用简单的日期格式化程序
请参阅http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/text/DateFormatter.html
java.util.Date dateObj = new java.util.Date(timeStamp);
这里timeStamp是你的长整数,实际上是以毫秒为单位的时间戳,你得到 java 日期对象,现在你可以通过这个将它转换为字符串
SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat dateformatMMDDYYYY = new SimpleDateFormat("MMddyyyy");
StringBuilder nowYYYYMMDD = new StringBuilder( dateformatYYYYMMDD.format( dateObj ) );
StringBuilder nowMMDDYYYY = new StringBuilder( dateformatMMDDYYYY.format( dateObj ) );
我正在提供现代答案。我建议使用现代 Java 日期和时间 API java.time 来进行日期工作。这将适用于您的 Android 版本:
// Take Catalan locale as an example for the demonstration
DateTimeFormatter dateFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(Locale.forLanguageTag("ca"));
long millisecondsSinceEpoch = 1_343_805_819_061L;
ZonedDateTime dateTime = Instant.ofEpochMilli(millisecondsSinceEpoch)
.atZone(ZoneId.systemDefault());
String dateString = dateTime.format(dateFormatter);
System.out.println("As formatted date: " + dateString);
输出是:
格式化日期:01/08/2012
我建议您使用内置的本地化日期格式向您的用户展示。我以加泰罗尼亚日期格式为例。内置多种语言、国家和方言的格式。
大多数旧答案中使用的SimpleDateFormat
班级是班级臭名昭著的麻烦制造者。使用的Date
类也设计得很差。幸运的是,它们都已经过时了。不再建议使用其中任何一个。而且我发现 java.time 更好用。
java.time 在较旧和较新的 Android 设备上都能很好地工作。它只需要至少Java 6。
org.threeten.bp
子包中导入日期和时间类。java.time
第一次描述的地方。java.time
Java 6 和 7 的反向移植(ThreeTen for JSR-310)。如果 thre 有 10 位数字,那么试试这个
长日期长 = 1584212400;
日期 date = new Date(DateInLong*1000L);
SimpleDateFormat simpledateformate=new SimpleDateFormat("yyyy-MM-dd");
字符串 DATE = simpledateformate.format(date);
public String getDuration(long msec) {
if (msec == 0)
return "00:00";
long sec = msec / 1000;
long min = sec / 60;
sec = sec % 60;
String minstr = min + "";
String secstr = sec + "";
if (min < 10)
minstr = "0" + min;
if (sec < 10)
secstr = "0" + sec;
return minstr + ":" + secstr;
}