Android 时间工具DateUtil

Android 时间工具DateUtil

 

  • String 转换 Date
  • long 转换 String
  • long 去除 时分秒
  • 计算时间差
  • 24小时制转12小时制
  • Date 转换 String
  • DateUtil全部源码

String 转换 Date

 


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


/**

* String 转换 Date

*

* @param str

* @param format

* @return

*/

public static Date string2Date(String str, String format) {

try {

return new SimpleDateFormat(format).parse(str);

} catch (ParseException e) {

e.printStackTrace();

}

return new Date();

}


long 转换 String

 


1

2

3

4

5

6

7

8

9

10

11

12


/**

* Date(long) 转换 String

*

* @param time

* @param format

* @return

*/

public static String date2String(long time, String format) {

SimpleDateFormat sdf = new SimpleDateFormat(format);

String s = sdf.format(time);

return s;

}


long 去除 时分秒

 


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


/**

* long 去除 时分秒

* 时分秒全部为0

*

* @param date

* @return

*/

public static long getYearMonthDay(long date) {

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(date);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.SECOND, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.MILLISECOND, 0);

return calendar.getTimeInMillis();

}


计算时间差

 


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27


/**

* 获取目标时间和当前时间之间的差距

*

* @param date

* @return

*/

public static String getTimestampString(Date date) {

Date curDate = new Date();

long splitTime = curDate.getTime() - date.getTime();

if (splitTime < (30 * ONE_DAY)) {

if (splitTime < ONE_MINUTE) {

return "刚刚";

}

if (splitTime < ONE_HOUR) {

return String.format("%d分钟前", splitTime / ONE_MINUTE);

}

if (splitTime < ONE_DAY) {

return String.format("%d小时前", splitTime / ONE_HOUR);

}

return String.format("%d天前", splitTime / ONE_DAY);

}

String result;

result = "M月d日 HH:mm";

return (new

SimpleDateFormat(result, Locale.CHINA)).format(date);

}


24小时制转12小时制


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24


/**

* 24小时制 转换 12小时制

*

* @param time

* @return

*/

public static String time24To12(String time) {

String str[] = time.split(":");

int h = Integer.valueOf(str[0]);

int m = Integer.valueOf(str[1]);

String sx;

if (h < 1) {

h = 12;

sx = "上午";

} else if (h < 12) {

sx = "上午";

} else if (h < 13) {

sx = "下午";

} else {

sx = "下午";

h -= 12;

}

return String.format("%d:%02d%s", h, m, sx);

}


Date 转换 String


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82


public static String[] WEEK = new String[]{"天", "一", "二", "三", "四", "五", "六"};

private static final long ONE_SECOND = 1000;

private static final long ONE_MINUTE = ONE_SECOND * 60;

private static final long ONE_HOUR = ONE_MINUTE * 60;

private static final long ONE_DAY = ONE_HOUR * 24;

/**

* Date 转换 HH

*

* @param date

* @return

*/

public static String date2HH(Date date) {

return new SimpleDateFormat("HH").format(date);

}

/**

* Date 转换 HH:mm:ss

*

* @param date

* @return

*/

public static String date2HHmm(Date date) {

return new SimpleDateFormat("HH:mm").format(date);

}

/**

* Date 转换 HH:mm:ss

*

* @param date

* @return

*/

public static String date2HHmmss(Date date) {

return new SimpleDateFormat("HH:mm:ss").format(date);

}

/**

* Date 转换 MM.dd

*

* @param date

* @return

*/

public static String date2MMdd(Date date) {

return new SimpleDateFormat("MM.dd").format(date);

}

/**

* Date 转换 yyyy.MM.dd

*

* @param date

* @return

*/

public static String date2yyyyMMdd(Date date) {

return new SimpleDateFormat("yyyy.MM.dd").format(date);

}

/**

* Date 转换 MM月dd日 星期

*

* @param date

* @return

*/

public static String date2MMddWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

return new SimpleDateFormat("MM月dd日 星期").format(date) + week[dayOfWeek - 1];

}

/**

* Date 转换 yyyy年MM月dd日 星期

*

* @param date

* @return

*/

public static String date2yyyyMMddWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

return new SimpleDateFormat("yyyy年MM月dd日 星期").format(date) + week[dayOfWeek - 1];

}


DateUtil全部源码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185


public class DateUtil {

public static String[] WEEK = new String[]{"天", "一", "二", "三", "四", "五", "六"};

private static final long ONE_SECOND = 1000;

private static final long ONE_MINUTE = ONE_SECOND * 60;

private static final long ONE_HOUR = ONE_MINUTE * 60;

private static final long ONE_DAY = ONE_HOUR * 24;

/**

* String 转换 Date

*

* @param str

* @param format

* @return

*/

public static Date string2Date(String str, String format) {

try {

return new SimpleDateFormat(format).parse(str);

} catch (ParseException e) {

e.printStackTrace();

}

return new Date();

}

/**

* Date(long) 转换 String

*

* @param time

* @param format

* @return

*/

public static String date2String(long time, String format) {

SimpleDateFormat sdf = new SimpleDateFormat(format);

String s = sdf.format(time);

return s;

}

/**

* long 去除 时分秒

* 时分秒全部为0

*

* @param date

* @return

*/

public static long getYearMonthDay(long date) {

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(date);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.SECOND, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.MILLISECOND, 0);

return calendar.getTimeInMillis();

}

/**

* 获取目标时间和当前时间之间的差距

*

* @param date

* @return

*/

public static String getTimestampString(Date date) {

Date curDate = new Date();

long splitTime = curDate.getTime() - date.getTime();

if (splitTime < (30 * ONE_DAY)) {

if (splitTime < ONE_MINUTE) {

return "刚刚";

}

if (splitTime < ONE_HOUR) {

return String.format("%d分钟前", splitTime / ONE_MINUTE);

}

if (splitTime < ONE_DAY) {

return String.format("%d小时前", splitTime / ONE_HOUR);

}

return String.format("%d天前", splitTime / ONE_DAY);

}

String result;

result = "M月d日 HH:mm";

return (new

SimpleDateFormat(result, Locale.CHINA)).format(date);

}

/**

* 24小时制 转换 12小时制

*

* @param time

* @return

*/

public static String time24To12(String time) {

String str[] = time.split(":");

int h = Integer.valueOf(str[0]);

int m = Integer.valueOf(str[1]);

String sx;

if (h < 1) {

h = 12;

sx = "上午";

} else if (h < 12) {

sx = "上午";

} else if (h < 13) {

sx = "下午";

} else {

sx = "下午";

h -= 12;

}

return String.format("%d:%02d%s", h, m, sx);

}

/**

* Date 转换 HH

*

* @param date

* @return

*/

public static String date2HH(Date date) {

return new SimpleDateFormat("HH").format(date);

}

/**

* Date 转换 HH:mm:ss

*

* @param date

* @return

*/

public static String date2HHmm(Date date) {

return new SimpleDateFormat("HH:mm").format(date);

}

/**

* Date 转换 HH:mm:ss

*

* @param date

* @return

*/

public static String date2HHmmss(Date date) {

return new SimpleDateFormat("HH:mm:ss").format(date);

}

/**

* Date 转换 MM.dd

*

* @param date

* @return

*/

public static String date2MMdd(Date date) {

return new SimpleDateFormat("MM.dd").format(date);

}

/**

* Date 转换 yyyy.MM.dd

*

* @param date

* @return

*/

public static String date2yyyyMMdd(Date date) {

return new SimpleDateFormat("yyyy.MM.dd").format(date);

}

/**

* Date 转换 MM月dd日 星期

*

* @param date

* @return

*/

public static String date2MMddWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

return new SimpleDateFormat("MM月dd日 星期").format(date) + WEEK[dayOfWeek - 1];

}

/**

* Date 转换 yyyy年MM月dd日 星期

*

* @param date

* @return

*/

public static String date2yyyyMMddWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

return new SimpleDateFormat("yyyy年MM月dd日 星期").format(date) + WEEK[dayOfWeek - 1];

}

}

时间: 2024-08-02 07:00:19

Android 时间工具DateUtil的相关文章

21.Android 时间工具DateUtil

21.Android 时间工具DateUtil Android 时间工具DateUtil String 转换 Date long 转换 String long 去除 时分秒 计算时间差 24小时制转12小时制 Date 转换 String DateUtil全部源码 String 转换 Date /** * String 转换 Date * * @param str * @param format * @return */ public static Date string2Date(String

Android自动化测试工具实现简述

前言 自动化测试在产品开发和测试中都有着非常重要的作用.在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题:在产品测试阶段,可以节省人力成本和时间成本,并能保证更大范围的覆盖.Android自动化测试工具同样可以节省不少人力和时间成本,对其研究和实现对于提高测试效率具有一定的意义.目前市面上也有不少Android自动化测试工具,本人在现有工具的基础上,加上自己的理解和实践向大家介绍自动化测试工具的原理和实现. 了解自动化测试的一定对Robotium并不陌生,Robotium是一款国外的An

Android常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S

Android开源工具项目集合

最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧. 最流行的android组件大全 http://www.open-open.com/lib/view/open1409108030307.html Android开源项目分类汇总 http://www.open-open.com/lib/view/open1406272852585.html Android开发免费类库和工具集合 http://www.open-open.com/lib

Android开源工具库

 一.依赖注入DI 通过依赖注入减少View.服务.资源简化初始化,事件绑定等重复繁琐工作 1. AndroidAnnotations(Code Diet) android快速开发框架 项目地址:https://github.com/excilys/androidannotations 文档介绍:https://github.com/excilys/androidannotations/wiki 官方网站:http://androidannotations.org/ 特点:(1)依赖注入:包

android开发工具类总结(一)

一.日志工具类 Log.java 1 public class L 2 { 3 private L() 4 { 5 /* 不可被实例化 */ 6 throw new UnsupportedOperationException("Cannot be instantiated!"); 7 } 8 // 是否需要打印bug,可以在application的onCreate函数里面初始化 9 public static boolean isDebug = true; 10 private sta

Xamarin.Forms教程Android SDK工具下载安装

Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. Xamarin.Form下载Android SDK 下载Android SDK具体的步骤如下. (1)打开浏览器,在地址栏中输入Android SDK官网地址http://developer.android.com/sdk/installing/ index.html,打开官网首页. (2)选项D

Android 开发工具及测试工具 汇总

注明:  转自 外部网站 http://www.tuicool.com/articles/EFBjequ 主要介绍和Android开发工具和测试工具相关的开源项目.  Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址: https://github.com/jonfhancock/JsonToJava 在线演示: http://jsontojava.a

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具 记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇 Google主推-Android开发利器--Android Studio,这可能是最全的AS教程! Android Studio,自Google2013年发布以来,就倍受Android开发者的喜爱,我们本书,就是基于Android Studio来进行案例演示的,大家都知道,Android