将语言环境日期字符串转换为时间戳。 Java / Android

时间:2014-02-26 23:46:50

标签: java android date time timestamp

目前我正在使用以下代码根据用户的区域设置创建日期时间字符串。

Calendar todayC = Calendar.getInstance() ;
Date today = todayC.getTime();
return today.toLocaleString();

这将返回以下格式的字符串(每种语言环境都不同):

  • 美国:(en_US)返回: 2014年2月26日下午10:27:53
  • 德国(de_DE)回归: 26.02.2014 22:28:57
  • 法国(fr_FR)返回:26fèvr。 2014 22:30:27
  • 挪威(Nb_NO)回归: 26。 2014年2月22:25:54 ......等等。

我已将这些字符串保存在数据库中,现在需要按日期对数据库进行排序。 基于这些刺痛的排序可能并不容易,所以我的问题是:

如何将这些字符串转换为时间戳?

3 个答案:

答案 0 :(得分:0)

您可以使用更简单的long值转换日期值:

Calendar todayC = Calendar.getInstance() ;
Date today = todayC.getTime();
long longValue = today.getTime();
return longValue;

您可以直接返回long值,也可以使用返回String值的特定格式转换日期值:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar todayC = Calendar.getInstance() ;
Date today = todayC.getTime();
String stringValue = sdf.format(today);
return stringValue;

我希望它很有用。

答案 1 :(得分:0)

您应该将日期中的long值(自纪元以来毫秒)存储在数据库中,并按这些值排序。当您确实需要向用户显示日期值时,请使用long值创建日期对象,并按照您希望的方式对其进行格式化。数据库设计用于存储数据,而不是标签。

答案 2 :(得分:0)

如果可能,我可能会将时间戳保留为数据库中的日期,并在您想要显示时使用区域设置。 它将更加一致,日期将更容易使用。