我想将日期和时间从"2014-11-25 14:30"格式转换为"2014年11月25日下午2:30".有人可以告诉你怎么做吗?
谢谢!
我有string date = "2014-09-11".
我想将此字符串设置为日历对象.
字符串值已经包含" - ".那么如何使用日期格式?
我需要计算用户在EditText中输入的两个日期(两个日期也包括在内)之间的天数.我还需要检查这些天来的天气还是已经过去了.我该怎么做?
如何在 android/java 中找到两个日期与今天相比的百分比?这个问题是基于这个问题。
我想做这样的事情:
Calendar c = Calendar.getInstance();
yeartoday = c.get(Calendar.YEAR);
monthtoday = c.get(Calendar.MONTH);
daytoday = c.get(Calendar.DAY_OF_MONTH);
...
Date datestart = getDate(styear,(stmonth-1),stday);
Date dateend = getDate(year,(month-1),day);
Date datetoday = getDate(yeartoday,monthtoday,daytoday);
double percent = (((datetoday - datestart) / (dateend - datestart)) * 100);
...
public Date getDate(int year,int month,int day){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, day);
Date date = calendar.getTime();
return date;
}
Run Code Online (Sandbox Code Playgroud) 在使用 Kotlin 的 Android 应用程序开发中,这将是对 JSON 数组进行排序的有效方法,该数组将日期作为属性值的对象。
我想按日期对我的回复进行排序并选择最新创建的项目。例如,我的列表响应是
[
{
name : "Joseph"
enrolled_at : "2019-12-17 14:16:51"
},
{
name : "Infant"
enrolled_at : "2019-12-20 10:06:22"
},
{
name : "Raj"
enrolled_at : "2020-02-10 07:19:16"
}
]
Run Code Online (Sandbox Code Playgroud)
我想用“enrolled_at”属性日期对此进行排序,以获取最近注册的项目。最初的反应很大,所以我在这里无法得到真正的反应。
使用 Kotlin 对日期进行排序的有效方法是什么?尝试使用Kotlin 中的sortedWith和其他集合。寻找建议。
我有一个UTC格式的日期时间字符串
并需要将此字符串转换为 DATE 对象而不进行任何格式更改。
目前,当我尝试将其转换为日期对象时,它会作为 GMT 格式的日期对象返回,如下图所示。
我使用SimpleDateFormat有一个限制,因为我还必须支持API<21。
String newDateString = "2022-06-27 08:27:00 UTC";
DateFormat format = new SimpleDateFormat(Constants.EnumDateFormats.DATE_FORMAT7);//"yyyy-MM-dd HH:mm:ss 'UTC'"
format.setTimeZone(java.util.TimeZone.getTimeZone("UTC"));
Date date = format.parse(newDateString);
System.out.println(date);//printing GMT formatted Date object but I need Date object in UTC format like 2022-06-27 08:27:00 UTC
Run Code Online (Sandbox Code Playgroud)
为了在SQLite数据库中存储Calendar对象,我发现最简单的方法是将Calendar对象转换为字符串并将其作为文本存储在数据库中.
现在,问题在于从字符串中提取存储的日期.
如何解析包含Calendar对象的字符串并将其设置为Calendar值?
我的代码是:
String CREATE_DOCTORS_TABLE = "CREATE TABLE " + TABLE_DOCTORS + "("
+ KEY_ID_DOC + " INTEGER PRIMARY KEY," + KEY_DOCTOR_NAME + " TEXT,"
+ KEY_CLINIC_ADDRESS + " TEXT," + KEY_LAST_CHECKUP + " TEXT" + ");";
db.execSQL(CREATE_DOCTORS_TABLE);
Run Code Online (Sandbox Code Playgroud)
其中KEY_LAST_CHECKUP包含如下值:
java.util.GregorianCalendar[time=?,areFieldsSet=false,lenient=true,zone=Asia/Calcutta,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=4,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MONTH=16,DAY_OF_YEAR=198,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=19,SECOND=47,MILLISECOND=823,ZONE_OFFSET=19800000,DST_OFFSET=0]
Run Code Online (Sandbox Code Playgroud)
我用这种方式将它存储在数据库中:
values.put(KEY_LAST_CHECKUP, (doctor.getLastCheckUpDate().toString())); // last check up date
Run Code Online (Sandbox Code Playgroud)
现在,我如何从存储的字符串中检索DAY,MONTH和YEAR?
我在这里阅读有关如何将日期字符串转换为日历对象的方法: 如何将日期字符串转换为日期或日历对象?
但我的字符串不只是一个日期字符串.它还包含许多其他细节.
前进的最佳方式是什么?
Calendar c = Calendar.getInstance();
String myDateString = (String) DateFormat.format("yyyy-MM-dd hh:mm", c.getTime());
dateTv.setText(myDateString);
Run Code Online (Sandbox Code Playgroud)
输出是:
2014-02-13 04:31
小时实际上不是04,它是16,我的意思是它是在名词之后,而不是在午夜之后(早上4点),如果你知道我的意思.
为什么会发生这种情况以及如何解决这个问题?
编辑:
对于可爱的-1选民:
正如有人建议的那样:
String myDateString = (String) DateFormat.format("yyyy-MM-dd HH:mm", c.getTime());
Run Code Online (Sandbox Code Playgroud)
这个解决方案给了我这个确切的String:
2014-02-13 HH:45
是.我的小时里有2个'H'字符.它只是一个H字符,而不是一个数字.
我正在开发聊天应用程序,但我正在努力弄清楚如何在聊天消息的顶部显示日历日期; 例如,像这样:
带时间戳的另一张图片:
正如您在示例中看到的那样,日期显示在全新的一批文本消息之上.我想做同样的事情,仅针对与特定日期相关的一批消息.如果我有10月19日的消息,它会显示10月19日的消息,然后是10月20日的消息等等......这是与我类似的工作示例代码:
http://www.codeproject.com/Tips/897826/Designing-Android-Chat-Bubble-Chat-UI
代码的构造与我的相同,除了顶部显示的日期,这是我坚持的东西.我有时间戳显示每条消息,我只想以"2015年10月19日星期一"格式显示该批消息的日期; 从10月19日开始,只有一次在顶部,同样是过去和未来消息的日历日期,如图所示.有线索吗?谢谢!
android android-layout android-date android-fragments android-activity
根据下图,当我使用item.takendate时SimpleDateFormat
我得到了"2016年1月"而不是"2017年1月"
这里发生了什么?请指教.
编辑
但是,当我使用cdate parse返回Date时,它的值从1月1日更改为1月2日
android simpledateformat date-formatting android-date kotlin
我在尝试获取DateUtils.getRelativeTimeSpanString以返回其在Android中应该遇到的问题时遇到了严重的问题。
我在这里经历过每个类似的问题,而发布的解决方案都没有起作用或没有意义。
这是我的代码:
CharSequence relativeDate =
DateUtils.getRelativeTimeSpanString(System.currentTimeMillis(),
currentNewsItem.getTimeInMilliseconds(),
DateUtils.HOUR_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
dateView.setText(relativeDate);
Run Code Online (Sandbox Code Playgroud)
currentNewsItem.getTimeInMilliseconds方法确实确实返回了很长的时间(例如,刚过去1521759734它看起来正确),并且getRelativeTimeSpanString将正确格式的日期字符串以“ 2018年3月23日”的格式传递给视图,因此它知道正确的日期。但是我需要它通过“ x小时前”或“ x分钟前”,而且我无法终生弄清楚为什么不是这样。
我已经检查了模拟器上的时间,并且问题出现在我的设备上,因此不是时区设置。
文档说,如果时间跨度大于7天,它将恢复为这样的日期字符串,但是我检查了过去的时间,因为旧时间已经过去,转换器网站显示这是4小时前的确切时间。此外,它显示的是正确的日期(今天),而不是小时/分钟前。
我已经尝试过将HOUR_IN_MILLIS,MINUTES_IN_MILLIS和SECONDS_IN_MILLIS常量用于第三个参数,并且尝试删除了最后一个缩写参数,但结果仍然相同。
我尝试了各种公共方法签名来尝试查找可能有效的签名,但它们都具有相同的结果。
有没有人遇到过这种情况,或者有人可以指出我要去哪里错了?非常感谢。
android android-date apache-commons-dateutils android-dateutils java-date
使用Android和Java 8,如何及时获得unix时间戳?
例如
我知道我可以使用当前的时间戳System.currentTimeMillis() / 1000L(您也可以使用Instant.now().getEpochSecond()新的java.time,但这需要Android API> 25).现在我需要得到偏移并减去它.我可以使用TimeUnit.Days.toSeconds(),但是如果我想减去年份,它就没有YEAR单位而且我不想自己捣乱闰年.
有一个简单的方法吗?
我从XML解析得到日期字符串,如下所示:2012-04-05 07:55:29 +05.30
现在,我希望这个字符串为:2012年4月5日
我怎样才能做到这一点?
android ×13
android-date ×13
java ×4
date ×2
kotlin ×2
calendar ×1
date-format ×1
java-date ×1
percentage ×1
sorting ×1
utc ×1