微信支付结果通知-time_end的格式化问题
微信支付结果通知
微信支付结果通知的回调参数中有一个支付完成时间字段:time_end,它的格式规则是:yyyyMMddHHmmss
我们的产品业务需求是转成:yyyy-MM-dd HH:mm:ss,这种格式进行保存
C#的方式
-
第一种方法:手动拼接
class Program { static void Main(string[] args) { var timeEnd = "20220617101059"; var year = timeEnd.Substring(0, 4); var month = timeEnd.Substring(4, 2); var date = timeEnd.Substring(6, 2); var hour = timeEnd.Substring(8, 2); var minute = timeEnd.Substring(10, 2); var second = timeEnd.Substring(12, 2); var newTimeEndString = string.Format("{0}-{1}-{2} {3}:{4}:{5}", year, month, date, hour, minute,second); Console.WriteLine(newTimeEndString); Console.ReadKey(); } }
-
第二种方式:DateTime.ParseExact() (推荐) 微软官方文档
class Program { static void Main(string[] args) { var dt = DateTime.ParseExact("20220617101059", "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss")); Console.ReadKey(); } }
PHP的方式
-
主要使用:strtotime
$dt= strtotime('20220617101059'); echo date('Y-m-d H:i:s',$dt);
JAVA的方式
-
主要使用:SimpleDateFormat
package com.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestDateFormat { public static void main(String[] args) { try { SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = simpleDateFormat1.parse("20220617101059"); SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = simpleDateFormat2.format(date); System.out.println(str); } catch (ParseException e) { e.printStackTrace(); } } }
记录一下我所做的项目中遇到的解决方案,可能只是实现方式的其中一种,希望可以帮到有需要的朋友。