通过阅读它们,我了解到 android 类是一个仅为方便起见的实用程序类,并且不提供任何SimpleDateFormat不提供的东西。android类有什么意义吗?使用它是否是更好的做法(如果是,为什么)?我的目标是在 Android 应用程序中显示 Date 对象(显然)。这里是:
private Date date;
public String getDateString(String formatStr){
return new SimpleDateFormat(formatStr).format(date);
}
Run Code Online (Sandbox Code Playgroud)
像这样使用 android.text.format.DateFormat 会更好吗:
public String getDateString(String formatStr){
return android.text.format.DateFormat.format(formatStr, date);
}
Run Code Online (Sandbox Code Playgroud)
或者也许两者都不是,但最好采用不同的方式?提前致谢。
我一直在想如何正确地测试依赖于Android的日期或时间变化的功能.假设我有每个月的第一天需要处理的事件,这个处理的结果取决于当前的日期/时间.我错过了在Android测试框架中伪造某个日期/时间的可能性.我们该如何测试那种东西?
当然,可以通过不是直接从框架查询日期/时间而是从另外的实体查询日期/时间来实时抽象.可以在测试代码中为此实体设置假日期/时间.但是,Android测试框架中是否真的不支持这样的常见需求?
在我的Android应用程序中,我从数据库中获取日期和时间.但是我无法将"日期"格式的日期从数据库中获取到我的应用程序中,日期是字符串格式,所以我无法将系统日期与数据库日期进行比较.如果我将系统日期转换为字符串,那么我无法在重复的情况下将日期更新到数据库中.如果系统日期和数据库日期匹配,我还想更新数据库日期.
我怎么能实现这个是android.
提前致谢.
我通过使用格式化来保存日期SimpleDateFormat.
DateFormat dateForm = new SimpleDateFormat("HH mm ss dd MMM ''yy");
String dateOutput = dateForm.format(new Date());
Run Code Online (Sandbox Code Playgroud)
这使用设备的默认语言环境,例如法语或西班牙语.
如何将此字符串(格式化为不同的Locale)转换回Date格式为Locale.ENGLISH?的对象?
目前,当我尝试将字符串转换回日期时,我得到一个不可解析的日期异常.这是由使用不同的区域设置保存日期的事实引起的
我正在Android开发者网站(位于http://developer.android.com/reference/android/text/format/DateFormat.html)上阅读android.text.format.DateFormat类的文档,以便了解更多信息关于它.具体来说,我试图将日期格式化为人类可读,因此我找到了格式(CharSequence inFormat,Date inDate)方法,并认为我会使用它.现在,我能够找到使用此方法的大多数示例与此类似:android.text.format.DateFormat.format("MM/dd/yyyy",new java.util.Date());
但是文档说明:
大多数调用者应避免将自己的格式字符串提供给此类的格式方法,并依赖于系统提供的正确本地化的字符串.
正是从这条线上,我的困惑和问题出现了.
1.)文档似乎没有说明(至少我无法在任何地方找到它,尽管我最难搜索)如何访问它所说的系统提供的正确本地化的字符串.这是如何完成的?
2.)在上面的示例行中提供您自己的格式字符串是否可接受(尽管文档说明了什么)?
在此先感谢您的帮助!
我正在像这样格式化日期:
public static String toFormattedDate(@NonNull Time time, String toFormat) {
mDateFormat = new SimpleDateFormat(toFormat);
Date date = new Date();
date.setTime(time.toMillis(true));
return mDateFormat.format(date);
}
Run Code Online (Sandbox Code Playgroud)
我使用的格式是:
public static final String TIME = "hh:mm a";
Run Code Online (Sandbox Code Playgroud)
但这在我用于测试的两个设备之间有所不同...
如何在设备之间统一格式化?
我想从特定日期获得日期,月份和年份.
我使用下面的代码:
String dob = "01/08/1990";
int month = 0, dd = 0, yer = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date d = sdf.parse(dob);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
month = cal.get(Calendar.MONTH);
dd = cal.get(Calendar.DATE);
yer = cal.get(Calendar.YEAR);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
所以从上面的代码我得到了 month -0 , yer - 1990 and date - 8
但我想要month - 01 , date - 08 and yer - 1990.
我也定义了日期格式,但我没有从日期,月份和年份获得完美的价值.
根据问题所述,我需要实际时间。例如,在我的应用程序中,我必须在国家时间上午 8 点向所有用户显示特定的弹出窗口。应用程序在特定国家/地区运行。如果设备时间不正确怎么办?我可以通过 api 获取时间。如果设备没有互联网怎么办?当我上网时,我就在考虑记录时间。例如,如果我有互联网,我会点击 api 来获取时间并存储该时间以跟踪它。还有其他解决方案吗?
你好,我有约会对象..
String date="09:00 AM"
Run Code Online (Sandbox Code Playgroud)
但我需要09:00:00
所以我使用以下。
String date="09:00 AM"
SimpleDateFormat f1 = new SimpleDateFormat("hh:mm:ss");
Date d1= f1.parse(date);
Run Code Online (Sandbox Code Playgroud)
但它给了我解析异常。
请帮我找到这个。
提前致谢。
我想在Android中获取当前日期日/月/年最小值:秒,所以我使用了以下代码
String data="";
Calendar c = Calendar.getInstance();
data=c.getTime().toGMTString();
Run Code Online (Sandbox Code Playgroud)
但Eclipse通知我该方法.toGMTString();已被弃用.
如何将当前日期作为格式化字符串获取,避免使用此弃用方法?